错误JSON解析数据android

时间:2015-04-07 19:42:51

标签: android json parsing

我有一个数据解析问题,在我的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"
            }
        }
    }
]
有人可以帮帮我吗?我试过很多方法,但我无法达成解决方案。 谢谢

2 个答案:

答案 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);
            }