2012-09-20 19 views
1

解析json響應時有一個小問題,因爲每當我發送一個請求時它都會不斷更新。所有我見過的例子使我們提供標籤名稱。我的問題是,我試圖解析通過API發送的請求中的數據,並且我想在開始解析之前列出JSON對象內存在的所有JSON數組的所有標記。在android中可能嗎? http://api.yamgo.tv/channel?apiKey=187abeefc53f900600dc0fc5b8f913a0&token=892e069fa48eead5e7f84cddafe7f0ba 這是我發送的請求,它給了我一個JSON響應。它具有作爲json對象的通道,並在其中包含許多帶有寶萊塢,娛樂,音樂等標籤的json數組。使用聯機解析器進行響應檢查。我想要這個數組名稱的列表。我該怎麼做。任何人都可以請幫忙。謝謝。如何獲取android/java中的json對象內的所有json數組的標籤名列表

+0

上面的鏈接有一些錯誤,因爲這給了我空指針異常。 –

+0

它是沒有問題的 –

+0

在Dom解析這是給我錯誤的空指針異常之前解析任何標籤。 –

回答

6

我其實從我的一位朋友那裏得到了一點小小的幫助。需要使用Iterator對象。 這裏是代碼段的

JSONObject channels = jobj.getJSONObject(TAG_CHANNELS); 
    Iterator<?> keys=channels.keys(); 
    while(keys.hasNext()) 
    { 
     String key = (String)keys.next(); 
     Log.e("Key", key); 
     if(channels.get(key) instanceof JSONArray){ 
      jsontags.add(key); 
     } 
    } 
1

哪裏jsonObj是包含一些數據, 通過這些下面的代碼,你可以得到的只是字段名,如果u想爲列的值,那麼你可以以價值爲進一步添加的JSONObject鍵。

List<String> listArray = new ArrayList<String>(); 
    Iterator iter = jsonObj.keys(); 
    int count=0; 
    while(iter.hasNext()){ 
     listArray.add((String)iter.next()); 
     count +=1; 
    } 
    System.out.println(listArray); 

output: [projector, video_conference, polycom, lcd, digital_phone, speaker_phone] 
相關問題