繁体   English   中英

用于创建对象的Salesforce Java Rest API JSON结构

[英]Salesforce Java rest api json structure for object creation

我正在尝试使用Salesforce为自定义Java应用程序设置REST API集成。 我遵循了教程/资源-

https://developer.salesforce.com/blogs/developer-relations/2017/04/machine-machine-salesforce-integrations-java-rest-soap.html

http://www.asagarwal.com/step-by-step-guide-to-get-started-with-salesforce-rest-api-using-java/

这些工作正常。 我的问题涉及通过REST API创建/更新Salesforce对象。 构造要创建的各个对象的特定代码段是-|

        //create the JSON object containing the new lead details.
        JSONObject lead = new JSONObject();
        lead.put("FirstName", "REST API");
        lead.put("LastName", "Lead");
        lead.put("Company", "asagarwal.com");

然后是构建此http请求的部分,这很常见-

          //Construct the objects needed for the request
        HttpClient httpClient = HttpClientBuilder.create().build();

        HttpPost httpPost = new HttpPost(uri);
        httpPost.addHeader(oauthHeader);
        httpPost.addHeader(prettyPrintHeader);
        // The message we are going to post
        StringEntity body = new StringEntity(lead.toString(1));
        body.setContentType("application/json");
        httpPost.setEntity(body);  

在我看来,以这种方式构造json对象似乎是一个维护问题。 现在,这涉及到必须遍历对象的整个字段列表(可能是100s)并获取其字段名称。 这似乎很乏味。 有没有一种方法可以在Java中获取特定Salesforce对象的对象结构,然后也许我可以使用外部库(例如Jackson和其批注)将对象序列化为json,而不必手动构造此json对象? 我尝试过在线查找此方法,但是当前唯一可行的方法是实际获取字段名称并自己构造一个Java bean并将其序列化为json。 有没有更干净的方法可以使用Salesforce的任何功能来做到这一点?

您是否具有在Apex类中设置REST服务(可以将对象类型作为String传递)的灵活性?

您可以编写一个Web服务来返回sObject的JSON,方法是在SF端使用JSON.serialize()并根据传递给该服务的内容返回它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM