Apexでオブジェクト(SObject)を JSON.serialize
した時に、データ型ごとの出力形式がどうなるのか、確認しました。
どこかにまとまっているのかもしれませんが…。
データ型が()付きのものは標準項目、それ以外はカスタム項目です。
データ型 | 出力時のフィールド名 | 出力形式 | 備考 |
---|---|---|---|
(ID) | Id | string | |
(Name) | Name | string | |
(作成者) | CreatedById | string | Salesforce ID |
(作成日時) | CreatedDate | string | ※1 |
(最終更新者) | LastModifiedById | string | Salesforce ID |
(最終更新日時) | LastModifiedDate | string | ※1 |
(最終閲覧日時) | LastViewedDate | string | ※1 |
(最終参照日時) | LastReferencedDate | string | ※1 |
自動採番 | {FieldName}__c | string | |
数式 | {FieldName}__c | (戻り値のデータ型) | |
参照関係 | {FieldName}__c | string | 参照先のID |
主従関係 | {FieldName}__c | string | 参照先のID |
URL | {FieldName}__c | string | |
チェックボックス | {FieldName}__c | boolean | |
テキスト | {FieldName}__c | string | |
テキスト(暗号化) | {FieldName}__c | string | マスク済み |
テキストエリア | {FieldName}__c | string | \r\n で改行 |
パーセント | {FieldName}__c | number | |
メール | {FieldName}__c | string | |
テキストエリア(リッチ) | {FieldName}__c | string | raw HTML \n で改行 |
ロングテキストエリア | {FieldName}__c | string | \r\n で改行 |
数値 | {FieldName}__c | number | |
選択リスト | {FieldName}__c | string | |
選択リスト(複数選択) | {FieldName}__c | string | 区切り文字は ; |
地理位置情報 | {FieldName}__c | object | { “latitude”: {緯度}, “longitude”: {経度} } |
{FieldName}__Latitude__s | number | 緯度 | |
{FieldName}__Longitude__s | number | 経度 | |
通貨 | {FieldName}__c | number | |
電話 | {FieldName}__c | string | |
日付 | {FieldName}__c | string | ※2 |
日付/時間 | {FieldName}__c | string | ※1 |
※1 日時(日付+時間)の場合、YYYY-MM-DDThh:mm:ss.SSS+0000 のフォーマットです(例: 2017-01-28T16:17:31.000+0000
)
※2 日付の場合、YYYY-MM-DD のフォーマットです。
というわけで、基本的には違和感のない出力形式となっていました。留意するのは地理位置情報型、選択リスト(複数選択)、テキストエリアの改行コードくらいですかね。
ちなみに、カスタムオブジェクトの型情報は attributes
項目の type
項目として取得できます。
"attributes": { "type": "Sample__c", "url": "/services/data/v38.0/sobjects/Sample__c/a0D2800000xxxxxXXX" }