【问题标题】:Handling Large JSON bodies in Salesforce在 Salesforce 中处理大型 JSON 正文
【发布时间】:2021-01-13 18:43:06
【问题描述】:

有没有办法消化大型 JSON 体,就像你说的 spring-boot 项目 @JsonIgnoreProperties(ignoreUnknown=true)。在哪里你不必有一个与 JSON 正文完全匹配的 DTO?我最近使用这种 1:1(DTO:JSON) 的方法遇到了一些限制,但我没有成功找到可以让我忽略大量 JSON 主体(7MB 和 UP)的东西。 谢谢大家的意见。

【问题讨论】:

    标签: json spring-boot rest salesforce


    【解决方案1】:

    您可以使用JSON.deserialize(jsonString, apexType)。与JSON.deserializeStrict() 不同,此方法只是忽略未知属性而不是抛出异常。
    您可以在开发者控制台中对其进行测试:

    String jsonString = '{ "unknown1": "aaa", "unknown2": "bbb", "type": "xyz", "id": "12345" }';
    Data data = (Data) JSON.deserialize(jsonString, Data.class); // No Exception
    System.debug(data);
    try {
        Data data = (Data) JSON.deserializeStrict(jsonString, Data.class);
    } catch(JSONException e) {
        System.debug('Exception thrown'); // You'll see this.
    }
    
    class Data {
        public String type;
        public String id;
    }
    

    无论如何,如果您必须处理超过 7MB 的数据,您应该使用异步事务:同步事务的堆大小限制为 6MB。 Governor Limits

    【讨论】:

    • 没有办法通过 REST API 或类似的方式进行异步事务,需要从文件中读取。像这样的事情最好在平台外处理(高 6mb),否则限制会让你受益。
    猜你喜欢
    • 2011-05-02
    • 1970-01-01
    • 2020-04-26
    • 2018-04-23
    • 2014-04-09
    • 1970-01-01
    • 2014-03-18
    相关资源
    最近更新 更多