2014-01-08 2 views
1

iTunes 상위 10 곡 및 iTunes 상위 10 개의 앨범을 표시하려는 웹 응용 프로그램을 구축 중입니다.JSON의 iTunes RSS 피드 - Java Webapps에서 읽기

나는 이것을 생성하기 위해 https://rss.itunes.apple.com/ 링크를 사용했으며 XML에서 json으로 변경했습니다.

http://itunes.apple.com/au/rss/topsongs/limit=10/json

나는 위의 링크에서 JSON을 얻고있다. 그리고 내가 필요한 필드를 얻을 수 있도록 JSON 개체를 읽는 방법에 혼란 오전,

http://jsonviewer.stack.hu/#http://itunes.apple.com/au/rss/topsongs/limit=10/json

그러나 JSON 뷰어에서 볼 수 있습니다. (entry> title)

나는 모든 제목을 얻기 위해 배열을 통해 엔트리와 루프를 얻을 수있다. 그러나 나는 상표를 얻는 방법에 관하여 확실하지 않다.

URL url = new URL("http://itunes.apple.com/au/rss/topsongs/limit=10/json"); 
     URLConnection connection = url.openConnection(); 

     String line; 
     StringBuilder builder = new StringBuilder(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
     while((line = reader.readLine()) != null) { 
     builder.append(line); 
     } 

     JSONObject itunesJsonObject = new JSONObject(builder.toString()); 

     JSONObject feedJsonOject = itunesJsonObject.getJSONObject("feed");   
     JSONArray arrayJsonObject = feedJsonOject.getJSONArray("entry"); 

     List<String> list = new ArrayList<>(); 

     for(int i = 0 ; i < arrayJsonObject.length() ; i++){       

      list.add(arrayJsonObject.getJSONObject(i).getString("title"));    
     } 

     for(String e: list){ 
      log.debug("JSON Object : " + e.toString()); 
     } 

log.debug에서 나는 레이블을 포함하여 다음과 같은 geeting입니다.

JSON 개체 : {: "- 퍼렐 윌리엄스"(슈퍼 배드 2 \ \에서) "해피" "라벨"}

JSON 개체 : { "라벨": "트럼펫 - 제이슨 데룰로"}

JSON 개체 : { "라벨": "무례한 - MAGIC!"}

JSON 개체 : { "라벨": "내 모든 - 존 레전드"}

JSON 개체 : { "라벨" "무료 (feat. Emeli Sandé) - Rudimental"}

JSON 개체 : { "label": "I See Fire - Ed Sheeran"}

JSON 개체 : { "label": "Timber (feat. 애 $ 헥타르) - 핏불 "}

JSON 개체 : {"라벨 ":"하나님 만 알고 - MKTO을 "}

JSON 개체 : {"라벨 ":"드럼처럼 - 가이 세바스찬 "}

JSON 개체 : { "라벨": "이봐 형제 - 아비치"}

내 질문은 중괄호와 단어 라벨이없는 단지 제목을 얻는 방법에

또한 JSON 항목에 : 메신저 : 콜렉션이 세 가지가 있습니다. 개체 (im : 이름, 링크 및 im : contentType). 무단으로 가져 오는 방법

사전에 도움을 주셔서 감사합니다.

답변

2

titlelabel 필드가있는 개체이므로 압축을 풀어야합니다. 이런 식으로 뭔가를 작동 할 수 있습니다 :

for(int i = 0 ; i < arrayJsonObject.length() ; i++){       
    list.add(arrayJsonObject.getJSONObject(i).getJSONObject("title").getString("label");    
} 

부분 원시 JSON :

"title": { 
    "label": "Happy (from \"Despicable Me 2\") - Pharrell Williams" 
}, 
+0

브릴리언트합니다. 완벽하게 일했습니다. 답변 해주셔서 감사합니다. –