【发布时间】:2018-08-02 21:26:21
【问题描述】:
我有一个JSONObject 和一个JSONArray,还有一个钥匙。我想通过数组iterate,在每个JSONObject中找到颜色为red的所有车型。
这是我目前所拥有的,但它给了我一个JSONException: JSONObject["color"] not found
JSONArray arr = responseBody.getJSONArray("carModels");
String redServices = "";
for(int i = 0; i < arr.length(); i++)
{
if(arr.getJSONObject(i).get("color").equals("red"))
redServices += arr.getJSONObject(i).toString() + ", ";
}
这是一个jsonObject的例子
{
"carModels": [
{
"toyota": {
"color": "green"
}
},
{
"mazda": {
"color": "red"
}
},
{
"vw": {
"color": "red"
}
},
{
"ford": {
"color": "red"
}
},
{
"honda": {
"color": "black"
}
},
{
"tesla": {
"color": "white"
}
},
],
"average": "red"
}
【问题讨论】:
-
你的问题是?
-
JSON 既没有
services也没有您在代码中使用的status字段 -
@KarolDowbecki 刚刚意识到,现在改变了。我试着概括问题
-
您没有逻辑来处理作为汽车名称的键。您可能应该重组 json,使 carModels 列表中的单个项目如下所示:{'color':'red','manufacturer':'tesla'},然后是 arr.getJSONObject(i).get("color")。 equals("red") 可以工作
标签: javascript java json iteration