2014-01-23 3 views
0

저는 JSON을 파싱하는 데있어 매우 익숙합니다. 나는 온통 보였고 나의 특별한 문제에 대한 생각을 파악할 수없는 것처럼 보였다. JSON 배열에서 JSON 객체를 가져 오는 방법을 이해하는 데 어려움을 겪고 있습니다. 내 예는 여기에 내 현재 코드가Java에서 simpleJson 구문 분석

 JSONParser parser = new JSONParser(); 

     Object obj = parser.parse(inputLine); 

     JSONObject jsonObject = (JSONObject) obj; 

     Long currPage = (Long)jsonObject.get("currentPage"); 
     System.out.println(currPage); 


     JSONArray jArray = (JSONArray)jsonObject.get("data"); 
     System.out.println(jArray); 

inputLine 내 시킴으로 빨리 JSON이다

[{"styleId":94, 
    "status":"verified", 
    "abv":"4.2", 
    "name":"Bud Light"}] 

이하입니다. "data"태그가있는 원래 JSONObject에서 JSONArray를 꺼 냈습니다. 이제 이것이 내가 붙어 있고 맨 위에 JSONArray가있는 곳입니다. JUST "name"태그를 잡기 위해 배열을 반복하는 법을 모릅니다.

고급 도움말에 감사드립니다!

+1

JSONObject obj2 = (JSONObject) jArray.get (0); 다음 System.out.println (obj2.get ("name")); – Chill

+1

링크가 도움이 될 것입니다 .http : //stackoverflow.com/questions/21019131/read-json-file-and-display-its-contents/21019227#21019227 –

+1

JSON 배관을하기 위해 Jackson과 같은 것을 사용하지 않으시겠습니까? – Saket

답변

1

그냥 Gson을 사용하십시오. 그것은 당신이 제공하는 모든 객체 유형으로 상자에서 잘 작동합니다.

는 예 from the user's guide이다

INT는 [] = ints2 gson.fromJson. ("[1,2,3,4,5]가"[] 클래스 INT);

2

JSONArray에서 반복하려면 루프의 각 요소를 검토해야합니다.

int resultSize = jArray.length();   
JSONObject result; 

for (int i = 0; i < resultSize; i++) { 
    result = resultsArray.getJSONObject(i); 
    String name = result.getString("name"); 

    // do whatever you want to do now... 
}