2011-09-20 48 views
2

我有這種格式與動態密鑰的JSON用於的Java JSONArray和動態密鑰

{ 
    "id":[email protected]", 
    "contact":[ 
    { 
    "uid":0, 
    "name":"johnsmith", 
    "email":[ 
     { 
      "home":"[email protected]" 
     }, 
     { 
      "work":"[email protected]" 
     } 
    ], 
    "mobile":[ 
     { 
      "cc":"+60", 
      "mobile":"00000000" 
     }, 
     { 
      "cc":"+60", 
      "mobile":"00000001" 
     } 
    ] 
    } 
    ] 
} 

我試過電子郵件

Iterator it = contactArray.getJSONObject(i) 
      .getJSONObject("email").keys(); 

但我得到一個錯誤

org.json.JSONException: JSONObject["email"] is not a JSONObject. 

但這樣做的工作,但沒有辦法從JSONArray獲得密鑰。

  JSONArray emailArray = contactArray.getJSONObject(i) 
        .getJSONArray("email"); 

如何處理動態密鑰?謝謝。

回答

1

數組沒有鍵,它們有元素。這應該是基於Java集合類型,使用循環結構來測試它:

JSONArray emailArray = contactArray.getJSONObject(i).getJSONArray("email"); 

for(Object o: emailArray){ 
    System.out.println(o); 
} 

如果emailArray是空的,什麼也不會輸出,如果它有它的元素的值將被輸出。