概要
deserializeUntypedでJSONをMAP<String, Object>にキャストします。
JSONパターン1(ネストなし)
{
"id": 1,
"name": "ねこ",
"phone": "03-0000-0001",
"fax": "03-0000-0002"
}
Apex
Map<String, Object> resultJSON = (Map<String, Object>)JSON.deserializeUntyped(response.getBody());
String result = String.valueOf(resultJSON.get('name'));
これで”ねこ”がString型変数のresultに入りました。
JSONパターン2(ネストあり)
{
"cat1" : {
"name": "ちろ",
"age" : "12",
"weight" : "2"
},
"cat2" : {
"name": "ちゃろ",
"age" : "24",
"weight" : "3"
},
"cat3" : {
"name": "ちょこ",
"age" : "36",
"weight" : "4"
}}
Apex
Map<String, Object> resultJSON = (Map<String, Object>) JSON.deserializeUntyped(response.getBody());
Map<String,Object> resultCat1 = (Map<String,Object>) resultJSON.get('cat1');
String result = (String)resultCat1.get('name');
これで”ちろ”がString型変数のresultに入りました。