无法从JsonObject

时间:2019-01-16 22:57:17

标签: java android-studio google-places-api object-property

我使用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) {
                //
            }
        });

但是我看到一个错误: enter image description here

1 个答案:

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