从类似的问题Nested JSON Array in Java开始,我有一个有点奇怪的json作为来自REST api(POST)调用的响应。我需要在每个items
数组元素中找出sub_items
数组的id
和name
。
我尝试了如下所示的方法,但遇到了如下错误
org.json.JSONException:找不到JSONObject[“项目.子项目”]。
我也尝试了'sub_items'作为参数,但是没有。我使用的是GSON。没有选择使用其他的。
final JSONObject jsonObj = new JSONObject(JSON_STRING);
final JSONArray subItems = jsonObj.getJSONArray("items.sub_items");
final int n = subItems.length();
for (int i = 0; i < n; ++i) {
final JSONObject subI= subItems.getJSONObject(i);
System.out.println("id="+subI.getString("id"));
System.out.println("name="+subI.getString("name"));
}
下面是我的json作为REST api调用的响应。
{
"menu": {
"items": [{
"id": 1,
"code": "hot1_sub1_mnu",
"name": "Mutton",
"status": "1",
"sub_items": [{
"id": "01",
"name": "Mutton Pepper Fry",
"price": "100"
}, {
"id": "02",
"name": "Mutton Curry",
"price": "100"
}]
},
{
"id": "2",
"code": "hot1_sub2_mnu",
"name": "Sea Food",
"status": "1",
"sub_items": [{
"id": "01",
"name": "Fish Fry",
"price": "150"
}]
},
{
"id": "3",
"code": "hot1_sub3_mnu",
"name": "Noodles",
"status": "1",
"sub_items": [{
"id": "01",
"name": "Chicken Noodles",
"price": "70"
}, {
"id": "02",
"name": "Egg Noodles",
"price": "60"
}]
}
]
}}
1条答案
按热度按时间ycl3bljg1#
正如我所说的,我的JSON是来自REST API调用的响应,它有7300行长,如下面的大纲所示,如代码美化程序所示。
我需要从'Pages'数组中提取一个字符串值'questionText'。我使用jsonPath()方法和下面给出的导航路径解决了这个问题。
它给了我3个数组列表,一个嵌入另一个,对应于3个'pages'数组