2011-10-04 4 views
2

사용자의 최신 YouTube 업로드에 JSON 정보를 제공하는 URL은 https://gdata.youtube.com/feeds/api/users/charlieissocoollike/uploads?alt=jsonc&v=2입니다.YouTube API에서 JSON 구문 분석

이 JSON 데이터를 구문 분석하기위한 코드를 작성했지만 JSON이 작동하는 방식과 Java에서 구문 분석하는 방법을 이해할 수 없습니다.

public void getVideoData() throws ClientProtocolException, JSONException, IOException { 

    JSONObject object = (JSONObject) new JSONTokener(getVideoJSON().toString()).nextValue(); 
    //String query = object.getString("data"); 
    JSONArray locations = object.getJSONArray("data"); 
    output.setText(locations.getString(1)); 

} 

public JSONObject getVideoJSON() throws ClientProtocolException, IOException, JSONException { 
    final String URL = "https://gdata.youtube.com/feeds/api/users/charlieissocoollike/uploads?alt=jsonc&v=2"; 

    StringBuilder url = new StringBuilder(URL); 
    HttpGet get = new HttpGet(url.toString());  
    HttpResponse r = client.execute(get);  
    int status = r.getStatusLine().getStatusCode(); 
     HttpEntity e = r.getEntity();   
     String data = EntityUtils.toString(e);   
     JSONArray VideoData = new JSONArray(data);  
     JSONObject video = VideoData.getJSONObject(0); 

     return video;   
} 

각 비디오 객체의 JSON 데이터에서 비디오 ID, 제목 및 설명을 어떻게 가져와야합니까?

답변

2

거의 다 왔어. 당신은 무엇이 필요하다 :

JSONObject json = new JSONObject(data); 
JSONObject dataObject = json.getJSONObject("data"); // this is the "data": { } part 
JSONArray items = dataObject.getJSONArray("items"); // this is the "items: [ ] part 

그런 다음 각 비디오를 통해 통과 할 수

for (int i = 0; i < items.length(); i++) { 
    JSONObject videoObject = items.getJSONObject(i); 
    String title = videoObject.getString("title"); 
    String videoId = videoObject.getString("id"); 
} 
+0

답장을 보내 주셔서 감사합니다. 그러나이 코드를 getVideoJSON 메소드에 삽입하고 void로 만들고 getVideoData 메소드를 제거 하시겠습니까? –

+0

그것은 당신이 그것으로하고 싶은 것에 달려 있습니다. 데이터로 무엇을하려고하는지 모르겠지만이 코드는 모든 비디오 결과에서 각 비디오 제목 및 ID (및 기타)를 얻는 방법에 대한 일반적인 아이디어를 제공해야합니다. – smoak

4

는 자바로 구현 파서를 가지고있다.

+2

질문과 코드를 읽었습니까? OP가 이미 그것을 사용하고 있습니다. 그는 JSON 파서를 사용하여 속성을 추출하는 방법을 정확히 모릅니다. 게다가, "Java"는 머리 글자가 아니므로 외치지 마십시오. – BalusC