如何在JSON对象中解析多个JSON对象?

时间:2014-09-10 12:08:31

标签: android json

我正在尝试解析包含多个JSON对象的JSON响应。这是我的代码:

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

我在Json中尝试过单个对象解析响应,我能够获取。但我不知道如何用多个节点解析Json对象。我曾经尝试过,但无法在这方面取得成功。

4 个答案:

答案 0 :(得分: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 :(得分: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”);

答案 2 :(得分:1)

您可以将另一个JSONObject作为所请求密钥的值, 试试这个:

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");

答案 3 :(得分: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();
        }