我有这样的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"));
答案 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();
}