无法通过从 JsonObject 获取值来编译代码
Posted
技术标签:
【中文标题】无法通过从 JsonObject 获取值来编译代码【英文标题】:Can't compile the code with getting the value from JsonObject 【发布时间】:2019-06-11 02:31:17 【问题描述】:我使用 Volley 库向 Google Places 发出 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)
//
);
但我看到一个错误:
【问题讨论】:
【参考方案1】:好像response.getJSONArray("results");
抛出了JSONException
。您需要通过使用 try-catch 块包装 response.getJSONArray("results");
来处理该异常。
类似这样的:
try
JSONArray array = response.getJSONArray("results");
catch (org.json.JSONException exception)
// handle the exception
【讨论】:
以上是关于无法通过从 JsonObject 获取值来编译代码的主要内容,如果未能解决你的问题,请参考以下文章