APEX JSON反序列化

APEX JSON反序列化,json,salesforce,apex-code,Json,Salesforce,Apex Code,我有一个JSON字符串,它有嵌套的对象,动态名称每次都不同。例如: { "Objects": { "dynamicName1": { "name": "test" }, "dynamicName2": { "name": "test" } } } 我想知道如何使用包装器类在APEX中反序列化这个字符串 我试过这个: public class masterobj {

我有一个JSON字符串,它有嵌套的对象,动态名称每次都不同。例如:

{
    "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,在工作中有一些变化使这更容易。