我正在尝试解析包含多个JSON对象的JSON响应。这是我的代码:
{
"All": {
"name": "All",
"display": "All"
},
"Apparel": {
"name": "Apparel",
"display": "Apparel"
},
"Appliances": {
"name": "Appliances",
"display": "Appliances"
}
}
我在Json中尝试过单个对象解析响应,我能够获取。但我不知道如何用多个节点解析Json对象。我曾经尝试过,但无法在这方面取得成功。
答案 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();
}