我有一个数据解析问题,在我的logcat中我发现了这个错误:
Error parsing dataorg.json.JSONException: No value for nome
这是我的解析器代码:
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
String aa = json_data.getString("nome");
Log.i("log_tag", "JSON:" + aa);
}
}
catch (JSONException e)
{
Log.e("log_tag_parsing", "Error parsing data" + e.toString());
}
显然,我的json结果页面中存在字段名称。 为清楚起见,我也会发布我的json。
[
{
"punti": {
"_id": {
"$id": "551fb585ecba12c819000032"
},
"nome": "Google",
"loc": [
-122.083983,
37.422969
],
"icona": 1,
"istituzione_id": {
"$id": "551fb556ecba12c819000031"
}
}
}
]
有人可以帮帮我吗?我试过很多方法,但我无法达成解决方案。
谢谢
答案 0 :(得分:1)
您需要从"nome"
对象中提取"punti"
:json_data.getJSONObject("punti")
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
JSONObject punti = json_data.getJSONObject("punti");
String aa = punti.getString("nome");
Log.i("log_tag", "JSON:" + aa);
}
} catch (JSONException e) {
Log.e("log_tag_parsing", "Error parsing data" + e.toString());
}
答案 1 :(得分:0)
您的“nome”字段位于“punti”JSONObject内。您的代码必须是:
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
JSONObject json_punti = json_data.getJSONObject("punti");
String aa = json_punti .getString("nome");
Log.i("log_tag", "JSON:" + aa);
}