Newer Version Available
JSON クラス
名前空間
使用方法
System.JSON クラスのメソッドを使用して、Apex オブジェクトの JSON の逐次化と並列化の往復処理を実行します。
JSON メソッド
JSON のメソッドは次のとおりです。すべてのメソッドが静的です。
createGenerator(prettyPrint)
署名
public static System.JSONGenerator createGenerator(Boolean prettyPrint)
パラメータ
- prettyPrint
- 型: Boolean
- JSON ジェネレータが、JSON コンテンツをインデントされた見栄えのよい印刷形式で作成するかどうかを指定します。インデントされたコンテンツを作成するには、true を設定します。
戻り値
createParser(jsonString)
署名
public static System.JSONParser createParser(String jsonString)
パラメータ
- jsonString
- 型: String
- 解析する JSON コンテンツです。
戻り値
deserialize(jsonString, apexType)
署名
public static Object deserialize(String jsonString, System.Type apexType)
パラメータ
- jsonString
- 型: String
- 並列化する JSON コンテンツです。
- apexType
- 型: System.Type
- このメソッドが JSON コンテンツの並列化後に作成するオブジェクトの Apex 型です。
戻り値
型: Object
使用方法
解析する JSON コンテンツに、引数で指定された Apex 型に存在しない属性 (存在しない項目やオブジェクトなど) が含まれている場合、このメソッドはそれらの属性を無視して、残りの JSON コンテンツを解析します。ただし、Salesforce API バージョン 24.0 以前を使用して保存された Apex の場合、このメソッドは存在しない属性に対して実行時例外を発生させます。
例
1Decimal n = (Decimal)JSON.deserialize(
2 '100.1', Decimal.class);
3System.assertEquals(n, 100.1);deserializeStrict(jsonString, apexType)
署名
public static Object deserializeStrict(String jsonString, System.Type apexType)
パラメータ
- jsonString
- 型: String
- 並列化する JSON コンテンツです。
- apexType
- 型: System.Type
- このメソッドが JSON コンテンツの並列化後に作成するオブジェクトの Apex 型です。
戻り値
型: Object
使用方法
例
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public class Car {
18 public String make;
19 public String year;
20}
21
22public void parse() {
23 Car c = (Car)JSON.deserializeStrict(
24 '{"make":"SFDC","year":"2020"}',
25 Car.class);
26 System.assertEquals(c.make, 'SFDC');
27 System.assertEquals(c.year, '2020');
28}deserializeUntyped(jsonString)
署名
public static Object deserializeUntyped(String jsonString)
パラメータ
- jsonString
- 型: String
- 並列化する JSON コンテンツです。
戻り値
型: Object
例
1swfobject.registerObject("clippy.exUntyped", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17String jsonInput = '{\n' +
18 ' "description" :"An appliance",\n' +
19 ' "accessories" : [ "powerCord", ' +
20 '{ "right":"door handle1", ' +
21 '"left":"door handle2" } ],\n' +
22 ' "dimensions" : ' +
23 '{ "height" : 5.5 , ' +
24 '"width" : 3.0 , ' +
25 '"depth" : 2.2 },\n' +
26 ' "type" : null,\n' +
27 ' "inventory" : 2000,\n' +
28 ' "price" : 1023.45,\n' +
29 ' "isShipped" : true,\n' +
30 ' "modelNumber" : "123"\n' +
31 '}';
32
33Map<String, Object> m =
34 (Map<String, Object>)
35 JSON.deserializeUntyped(jsonInput);
36
37System.assertEquals(
38 'An appliance', m.get('description'));
39
40List<Object> a =
41 (List<Object>)m.get('accessories');
42System.assertEquals('powerCord', a[0]);
43Map<String, Object> a2 =
44 (Map<String, Object>)a[1];
45System.assertEquals(
46 'door handle1', a2.get('right'));
47System.assertEquals(
48 'door handle2', a2.get('left'));
49
50Map<String, Object> dim =
51 (Map<String, Object>)m.get('dimensions');
52System.assertEquals(
53 5.5, dim.get('height'));
54System.assertEquals(
55 3.0, dim.get('width'));
56System.assertEquals(
57 2.2, dim.get('depth'));
58
59System.assertEquals(null, m.get('type'));
60System.assertEquals(
61 2000, m.get('inventory'));
62System.assertEquals(
63 1023.45, m.get('price'));
64System.assertEquals(
65 true, m.get('isShipped'));
66System.assertEquals(
67 '123', m.get('modelNumber'));serialize(objectToSerialize)
署名
public static String serialize(Object objectToSerialize)
パラメータ
- objectToSerialize
- 型: Object
- 逐次化する Apex オブジェクトです。
戻り値
型: String
例
1Datetime dt = Datetime.newInstance(
2 Date.newInstance(
3 2011, 3, 22),
4 Time.newInstance(
5 1, 15, 18, 0));
6 String str = JSON.serialize(dt);
7 System.assertEquals(
8 '"2011-03-22T08:15:18.000Z"',
9 str);serializePretty(objectToSerialize)
署名
public static String serializePretty(Object objectToSerialize)
パラメータ
- objectToSerialize
- 型: Object
- 逐次化する Apex オブジェクトです。
戻り値
型: String