Newer Version Available
逐次化と並列化の往復処理
JSON クラスのメソッドを使用して、JSON コンテンツの逐次化と並列化の往復処理を実行します。これらのメソッドを使用すると、オブジェクトを JSON 形式の文字列に逐次化したり、JSON 文字列を並列化してオブジェクトに戻したりすることができます。
例: 請求書リストの逐次化と並列化
次の例では、InvoiceStatement オブジェクトのリストを作成して、リストを逐次化します。次に、逐次化された JSON 文字列を使用してリストを並列化し、元のリストに表示された請���書と同じ請求書が新しいリストに含まれることをサンプルで検証します。
JSON 逐次化の考慮事項
serialize メソッドの動作は、保存された Apex コードの Salesforce API バージョンによって異なります。
- 追加項目セットのあるクエリ対象の sObject の逐次化
- Salesforce API バージョン 27.0 以前を使用して保存された Apex の場合、クエリ対象の sObject に追加項目セットがある場合、これらの項目は serialize メソッドによって返される逐次化された JSON 文字列に含まれません。Salesforce API バージョン 28.0 以降を使用して保存された Apex で開始する場合は、逐次化される JSON 文字列に追加項目が含まれます。
- 次の例では、照会された後に項目が取引先責任者に追加され、その後取引先責任者が逐次化されます。アサーションステートメントは、JSON 文字列に追加項目が含まれていることを検証します。このアサーションは、Salesforce API バージョン 28.0 以降を使用して保存された Apex に対して有効です。
- 集計クエリの結果項目の逐次化
- Salesforce API バージョン 27.0 を使用して保存された Apex の場合、serialize メソッドを使用して逐次化すると、集計クエリの結果に SELECT ステートメントの項目は含まれません。API の以前のバージョン、または API バージョン 28.0 以降の場合、逐次化された集計クエリの結果に SELECT ステートメントのすべての項目が含まれます。
- この集計クエリは、2 つの項目 (ID 項目の数と取引先名) を返します。
- 空の項目の逐次化
- API バージョン 28.0 以降はそれまでのバージョンとは異なり、null 項目は逐次化されず、JSON 文字列には含まれません。この変更は、deserialize(jsonString, apexType) などの JSON メソッドを使用した JSON 文字列の並列化には影響しません。JSON 文字列を調べるときにこの変更の影響が顕著に現れます。次に例を示します。
- ID の逐次化
- API バージョン 34.0 以前では、JSON の逐次化と並列化の往復処理後の ID に対する == を使用した ID の比較は失敗します。