2014-09-10 131 views
2

我試圖解析其中包含多個JSON objects.Please幫助我做一些代碼來解析這個數據的JSON響應:如何解析在側JSON對象的多個JSON對象

{ 
"All": { 
    "name": "All", 
    "display": "All" 
}, 
"Apparel": { 
    "name": "Apparel", 
    "display": "Apparel" 
}, 
"Appliances": { 
    "name": "Appliances", 
    "display": "Appliances" 
} 
} 

我試過單Json中的對象分析響應,我能夠獲取。但我不知道如何解析與多個節點的Json oblect ..我曾嘗試過,但無法在這個成功。您的幫助非常感謝

我需要解析這個數據

+0

JSON是很簡單的,你已經嘗試解析什麼? – 2014-09-10 12:10:22

+0

請顯示你的代碼...你到目前爲止嘗試過什麼? – Gattsu 2014-09-10 12:14:14

回答

1

你可以試試下面的代碼

JSONObject outer = new JSONObject(response); 
Iterator<String> keys =outer.keys(); 
while(keys.hasNext()){ 
    String key = keys.next(); 
    JSONObject inside = outer.getJSONObject(key); 
    //Do stuff 
} 

其中response是json字符串。

1

它將如下所示。其中RootData是主要的JSON字符串

JSONObject js=new JSONObject(RootData); 
JSONObject all =js.getJSONObject(「All」); 
String AllName=all.getString(「name」); 
String AllDisplay=all.getString(「display」); 

JSONObject apparel =js.getJSONObject(「Apparel」); 
String apparel_Name=apparel .getString(「name」); 
String apparel_Display=apparel .getString(「display」); 

JSONObject appliances =js.getJSONObject(「Appliances」); 
String appliances_Name=appliances .getString(「name」); 
String appliances_Display=appliances .getString(「display」); 
1

你可以得到另一個JSONObect的價值要求的關鍵, 試一下:

String jsonStr = " {\n\"All\": {\n \"name\": \"All\",\n \"display\": \"All\"\n},\n\"Apparel\": {\n \"name\": \"Apparel\",\n \"display\": \"Apparel\"\n},\n\"Appliances\": {\n \"name\": \"Appliances\",\n \"display\": \"Appliances\"\n}"; 
JSONObject json; 
json = new JSONObject(jsonStr); 
JSONObject All = json.getJSONObject("All"); 
1
try { 
      JSONObject obj = new JSONObject("your result String"); 
      JSONObject obj1 = obj.getJSONObject("All"); 
      String name=obj1.getString("name"); 
      String display=obj1.getString("display"); 
      JSONObject obj2 = obj.getJSONObject("Apparel"); 
      String name1=obj2.getString("name"); 
      String display1=obj2.getString("display"); 

      JSONObject obj3 = obj.getJSONObject("Appliances"); 
      String name2=obj3.getString("name"); 
      String display2=obj3.getString("display"); 


     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }