APEX JSON反序列化
我有一个JSON字符串,它有嵌套的对象,动态名称每次都不同。例如:APEX JSON反序列化,json,salesforce,apex-code,Json,Salesforce,Apex Code,我有一个JSON字符串,它有嵌套的对象,动态名称每次都不同。例如: { "Objects": { "dynamicName1": { "name": "test" }, "dynamicName2": { "name": "test" } } } 我想知道如何使用包装器类在APEX中反序列化这个字符串 我试过这个: public class masterobj {
{
"Objects": {
"dynamicName1": {
"name": "test"
},
"dynamicName2": {
"name": "test"
}
}
}
我想知道如何使用包装器类在APEX中反序列化这个字符串
我试过这个:
public class masterobj
{ public childobj Objects;
}
public class childobj
{ public el dynamicName1;
public el dynamicName2;
}
public class el
{ public string name;
}
String s = '{"Objects":{"dynamicName1":{"name":"test"},"dynamicName2":{"name":"test"}}}';
masterobj mo = (masterobj)JSON.deserialize(s, masterobj.class);
当您在类中为每个嵌套对象声明了动态变量名时,该方法效果良好
问题是如何在包装器类中使用动态变量来实现这一点。因为对象名称和对象数量会有所不同,所以我不能硬编码这些名称,因为它们每次都不同
有什么想法吗?您将无法使用json解析器的数据绑定功能对这样的结构进行反序列化,您需要使用来读取它。使用映射:
public class masterobj
{
Map<String, el> Objects;
}
公共类masterobj
{
地图对象;
}
为什么Salesforce总是如此艰难?:)FWIW,在工作中有一些变化使这更容易。