2017-11-03 4 views
0

다음 JSON이 있으며이 개체에서 Contact 개체를 만들고 싶습니다. 1, "완료": 사실, "기록": [{ "속성": { "유형"우리는 여기에JSONArray를 Object로 변환 하시겠습니까?

<dependency> 
     <groupId>com.googlecode.json-simple</groupId> 
     <artifactId>json-simple</artifactId> 
</dependency> 

를 사용하여 문자열

{ "totalSize이"그렇게 할 수있는 방법 : "연락처", "url": "/ services/data/v40.0/sobjects/Contact/0037F000001rW9rQAE"}, "Id": "0037F000001rW9rQAE", "Name": "Chris Smith"}]}

코드 아래에서 개발되었지만 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

당신은이 같은 문제를 해결할 수 있지만 예외를 관리하려는 경우이 방법에는 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); 
}