【问题标题】:How to parse multiple JSON object inside JSON object?如何解析 JSON 对象内的多个 JSON 对象?
【发布时间】:2018-09-21 02:27:03
【问题描述】:

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

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

我在 Json 中尝试过单个对象解析响应,我能够获取。但我不知道如何解析具有多个节点的 Json 对象。我曾尝试过,但无法成功。

【问题讨论】:

  • JSON 非常简单,您尝试解析什么?
  • 请出示您的代码...到目前为止您尝试了什么?

标签: android 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”);

【讨论】:

    【解决方案2】:
    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();
            }
    

    【讨论】:

      【解决方案3】:

      您可以获取另一个 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");
      

      【讨论】:

        【解决方案4】:

        你可以试试下面的代码

        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 字符串。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-30
          • 2021-05-04
          • 1970-01-01
          • 2021-03-19
          • 2012-09-28
          • 2017-09-24
          相关资源
          最近更新 更多