将JSONArray转换为Object?

时间:2017-11-03 17:42:54

标签: simplejson

我有以下JSON,我想从中创建一个Contact对象。我们如何使用

来做到这一点
<dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
</dependency>

这是字符串

  

{&#34;总计TOTALSIZE&#34;:1,&#34;完成&#34;:真,&#34;记录&#34;:[{&#34;属性&#34; {&#34 ;类型&#34;:&#34;联系&#34;&#34; URL&#34;:&#34; /services/data/v40.0/sobjects/Contact/0037F000001rW9rQAE"}&#34 ; Id&#34;:&#34; 0037F000001rW9rQAE&#34;,&#34; Name&#34;:&#34; Chris Smith&#34;}]}

我开发了以下代码,但是如何使用JSONArray从中获取详细信息?

JSONParser jsonParser = new JSONParser();
        Object obj = jsonParser.parse(value);
        JSONObject jsonObject = (JSONObject) obj;

        JSONArray jsonArray =  (JSONArray) jsonObject.get("records");
        System.out.println("~~~~~~~~~~~>>> "+jsonArray);


        List<Contact> contacts = new ArrayList<>();
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject rec = (JSONObject) jsonArray.get(i);
            Contact c = new Contact();
            c.setId(jsonArray.get(j).toString());

            contacts.add(jsonArray.get(j).toString());
        }

1 个答案:

答案 0 :(得分:1)

您可以像这样解决您的问题,但如果您想管理异常,则应使用方法getString(KEY),而不是optString(KEY)

List<Contact> contacts = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
   JSONObject rec = (JSONObject) jsonArray.get(i);
   Contact c = new Contact();
   c.setId(rec.optString("Id"));
   c.setName(rec.optString("Name"));
   c.setAtributes(rec.optJSONObject("attributes"))
   contacts.add(rec);
}