2016-10-04 130 views
1

我嘗試從json數據(YouTube V3 API)獲取價值。無法從JSON數據獲取價值 - YouTube API -

String jsonText = readFromUrl(channerUrl);// channerUrl = Youtube V3 API Link 

JSONObject json = new JSONObject(jsonText); 

System.out.println(json.getString("videoId")); 

但我有這個在我的日誌:

I/System.out: org.json.JSONException: No value for videoId 

的數據來自YouTube是:

{ 
"kind": "youtube#playlistItemListResponse", 
"etag": "\"xxxx"", 
"nextPageToken": "xxx", 
"pageInfo": { 
    "totalResults": 321, 
    "resultsPerPage": 1 
}, 
    "items": [ 
     { 
     "kind": "youtube#playlistItem", 
     "etag": "\"xxxx"", 
     "id": "xxxx", 
     "contentDetails": { 
     "videoId": "The Value Want" 
     } 
     } 
    ] 
} 

爲什麼我No value for videoId? 謝謝

EDIT(沒有工作過):(jsonText)是JSON數據

JSONObject json = new JSONObject(jsonText); 


     List<String> list = new ArrayList<String>(); 
     JSONArray array = json.getJSONArray("items"); 
     for(int i = 0 ; i < array.length() ; i++){ 
      list.add(array.getJSONObject(i).getString("contentDetails")); 
      System.out.println(json.getString("contentDetails")); 
     } 

回答

0

的鏈接,因爲videoId正在items對象。 獲取item第一,然後獲取其first child然後FET的videoId

編輯:使用

array.getJSONObject(i).getJSONObject("contentDetails").getString("videoId") 

,並清除println

隨後環路外僅打印包含videoId小號

列表
+0

好吧,所以'videoID'是在'contentDetails'誰在'items'中?我如何首先獲得'item'? – PotatoesPower

+0

找到getObject和getArray方法並使用它們 –

+0

我編輯了我的第一篇文章,我嘗試了getArray方法,但那也不起作用 – PotatoesPower

0

使用此代碼:

JSONObject json = new JSONObject(jsonText); 


      List<String> list = new ArrayList<String>(); 
      JSONArray array = null; 
      try { 
       array = json.getJSONArray("items"); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      for(int i = 0 ; i < array.length() ; i++){ 
       // list.add(array.getJSONObject(i).getString("contentDetails")); 
       try { 
        System.out.println(array.getJSONObject(i).getJSONObject("contentDetails").getString("videoId")); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      }