Newer Version Available
JSON サポート
Apex では JavaScript Object Notation (JSON) がサポートされ、Apex オブジェクトの JSON 形式への逐次化、逐次化された JSON コンテンツの並列化を実行できます。
Apex では、JSON 逐次化と並列化のメソッドを公開するクラスセットを提供します。次の表は、使用可能なクラスを示しています。
| クラス | 説明 |
|---|---|
| System.JSON | Apex オブジェクトを JSON 形式で逐次化するメソッドと、このクラスの serialize メソッドを使用して、逐次化された JSON コンテンツを並列化するメソッドがあります。 |
| System.JSONGenerator | 標準 JSON 符号化方式を使用してオブジェクトを JSON コンテンツに逐次化する場合に使用されるメソッドが含まれます。 |
| System.JSONParser | JSON 符号化されたコンテンツのパーサーを表します。 |
System.JSONToken は、JSON 解析に使用されるトークンを列挙します。
これらのクラスのメソッドは、実行中に問題が発生した場合 JSONException を生成します。
- JSON サポートの考慮事項
-
- JSON の逐次化と並列化のサポートは、sObject (標準オブジェクトとカスタムオブジェクト)、Apex プリミティブ型とコレクション型、データベースメソッドの戻り値のデータ型 (SaveResult、DeleteResult など)、Apex クラスのインスタンスで利用できます。
- 管理パッケージの sObject 型のカスタムオブジェクトのみ、管理パッケージ外のコードから逐次化できます。管理パッケージに定義される Apex クラスのインスタンスであるオブジェクトは、逐次化できません。
- Map オブジェクトは、キーとして次のいずれかのデータ型を使用する場合にのみ、JSON に逐次化できます。
- オブジェクトが上位型として宣言され、下位型のインスタンスに設定されている場合、一部のデータが失われる可能性があります。オブジェクトを逐次化して並列化すると、上位型および下位型に固有の項目は失わ��ます。
- オブジェクトに、そのオブジェクト自体への参照が設定されている場合は逐次化されず、JSONException が生成されます。
- 同じオブジェクトを 2 回参照する参照グラフが並列化されると、参照されるオブジェクトのコピーが複数生成されます。
- System.JSONParser データ型は、逐次化できません。Visualforce コントローラなど、System.JSONParser 型のメンバー変数を持つ逐次化可能なクラスがあり、このオブジェクトを作成しようとすると、例外が発生します。逐次化可能なクラスで JSONParser を使用するには、メソッド内でローカル変数を使用します。