我使用Volley库向Google地方信息提出API请求。 响应是这样的对象:
{
"html_attributions": [],
"results": [
{
"address": "Wood Quay, Dublin, Ireland",
"name": "Christ Church Cathedral",
"place_id": "ChIJGw9ASiYMZ0gRy9yiaCZxNZI",
},
{ ... },
{ ... },
],
"status": "OK"
}
在Response.Listener
内,我需要访问“结果”数组。
我尝试获取名称为“ results”的JSONArray,如下所示:
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, API_URL, null,
new Response.Listener <JSONObject> () {
@Override
public void onResponse(JSONObject response) {
// THE PROBLEM IS HERE - WON'T COMPILE !!!
JSONArray array = response.getJSONArray("results");
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//
}
});
答案 0 :(得分:2)
好像response.getJSONArray("results");
抛出JSONException
。您需要通过使用try-catch块包装response.getJSONArray("results");
来处理该异常。
类似这样的东西:
try {
JSONArray array = response.getJSONArray("results");
} catch (org.json.JSONException exception) {
// handle the exception
}