将 JSONArray 转换为对象?

Convert JSONArray to Object?

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

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

这是字符串

{"totalSize":1,"done":true,"records":[{"attributes":{"type":"Contact","url":"/services/data/v40.0/sobjects/Contact/0037F000001rW9rQAE"},"Id":"0037F000001rW9rQAE","Name":"Chris Smith"}]}

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

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());
        }

您可以这样解决您的问题,但如果您想管理异常,您应该使用方法 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);
}