2013-11-25 1 views
2

나는이 문서를 구문 분석하고 있습니다. http://pastebin.com/M3Gsbf1t 이 문서는 매우 다양합니다. 이 문서는 Youtube Data API v3에서 생성되었습니다. 모든 "제목"요소를 가져 와서 표시하고 싶습니다. 내 코드 :JSON - Java JSONArray로 문서 구문 분석

Object obj = parser.parse(str); // str contains the JSON code 
JSONObject jsonObject = (JSONObject) obj;    
JSONArray msg = (JSONArray) jsonObject.get("title"); 
Iterator iterator = msg.iterator(); 
while (iterator.hasNext()) { 
    System.out.println(iterator.next()); 
} 

는하지만 반환 "NullPointerException이". "제목"을 "항목"으로 바꾸면 제대로 작동하지만 필요하지 않은 정보를 많이 돌려줍니다. JSON.simple 라이브러리를 사용하고 있습니다. 내가 잘못 객체를 읽고있다하지 않는 한 도움을

감사합니다 :)

+0

'title '이 (가) JSON의 루트에 없습니다. 그것을 얻으려면 JSON 객체 트리를 탐색해야합니다. 또한,'title'은'JSONArray'가 어디에 있습니까? –

답변

1

:

JSONObject jsonObject = (JSONObject) obj;    
    JSONArray msg = (JSONArray) jsonObject.get("items"); 
    Iterator iterator = msg.iterator(); 
    while (iterator.hasNext()) { 
     //System.out.println(iterator.next()); 
     JSONObject item = (JSONObject) iterator.next(); 
     JSONObject item_snippet = (JSONObject) item.get("snippet"); 
     System.out.println(item_snippet.get("title")); 
    } 

당신은 된 JSONObject가 당신의 JSON 문자열의 루트에

titles = []; 
    obj = $.parseJSON(str); 
    $.each(obj.items,function(i,v{ 
    titles.push(v.snippet.title); 
    }); 
+0

작동. 다시 도움을 주셔서 감사합니다;) – PoQ

0

JQuery와 솔루션이 당신에게 제목의 배열을 제공해야합니다. 이 코드는 작동합니다

Object obj = parser.parse(str); // str contains the JSON code 
JSONObject jsonObject = (JSONObject) obj;    
JSONArray msg = (JSONArray) jsonObject.get("items"); 
Iterator iterator = msg.iterator(); 
while (iterator.hasNext()) { 
    // cast next item to JSONObject 
    JSONObject item = (JSONObject) iterator.next(); 
    // grab the title 
    System.out.println(item.get("title")); 
} 
0

이 같은이어야한다. 여기에는 items이라는 JSONArray가 있습니다. 그것에서 당신은 루프 동안 개별 항목을 끌어 와야합니다.

각 항목에는 JSONObject snippet이 있습니다. 마지막으로 title 문자열이 있습니다.