在Android中访问JSON数组的第0个索引

时间:2013-08-01 21:12:12

标签: android

我有这样的JSON响应:

{"response": 
{"legislators": 
    [
        {"legislator": 
            {
                               "fax": "", "name": "John Doe"
            }
        }
    ]
}
}

立法者阵列下只有1个元素。我试图使用第0个索引访问它,但我无法做到。我得到一个“org.json.JSONException:索引0超出范围[0..0)”。我做错了什么?

                        JSONObject response = jsonObject
                            .getJSONObject("response");
                    JSONArray legislators = response
                            .getJSONArray("legislators");
                    JSONObject first = legislators..getJSONObject(0).getJSONObject("legislator");

                    Log.i("Kuscco", "" + first.getString("name"));

1 个答案:

答案 0 :(得分:3)

在检索JSONObject“响应”之前,必须将字符串响应视为大JSON对象。然后,您可以继续获取JSONArray及其中的第一个对象。

尝试以下代码开始:

String jsonStr = "{\"response\": {\"legislators\": [ {\"legislator\": {\"fax\": \"\", \"name\": \"John Doe\"}}]}}";
JSONObject object;
try {
    object = new JSONObject(jsonStr);
    JSONObject response = object.getJSONObject("response");
    JSONArray legislators = response.getJSONArray("legislators");
    JSONObject first = legislators.getJSONObject(0).getJSONObject("legislator");
    Log.d("Kuscco STACK ++++++ ", "" + first.getString("name"));
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}