json - APEX JSON 反序列化

标签 json salesforce apex-code

我有 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 解析器的数据绑定(bind)功能反序列化这样的结构,您需要使用 streaming json parser阅读它。

关于json - APEX JSON 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9833394/

相关文章:

java - 将 Json 解析为包含对象的对象

ruby-on-rails-3 - 使用 omniauth-salesforce gem 获取访问 token

salesforce - 无法将堆对象传递给 future 方法的解决方法是什么?

null - 如何将 'blank' 分配给 Salesforce 中的小数字段

json - 带有 URL 的 URLSession 返回错误

javascript - 如何在 javascript 中将 json 对象发送到 asp.net?

java - Jackson 为 Type X 的所有字段添加自定义序列化程序

jquery - 我如何在 jquery 中表示 document.getElementById ('page1:form2:amount' )?

salesforce - 如何在 visualforce 页面中为用户显示输入字段?

date - Apex/Salesforce : Get Numeric Month Value From String Representation of Month