Не могу скомпилировать код с получением значения из JsonObject
Я использую библиотеку Volley для отправки запросов API в Google Places. Ответ является объектом, подобным этому:
{
"html_attributions": [],
"results": [
{
"address": "Wood Quay, Dublin, Ireland",
"name": "Christ Church Cathedral",
"place_id": "ChIJGw9ASiYMZ0gRy9yiaCZxNZI",
},
{ ... },
{ ... },
],
"status": "OK"
}
Внутри Response.Listener
Мне нужно получить доступ к массиву "результатов".
Я пытаюсь получить JSONArray с именем "results" следующим образом:
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
, Вы должны обработать это исключение, оборачивая response.getJSONArray("results");
с блоком try-catch.
Что-то вроде этого:
try {
JSONArray array = response.getJSONArray("results");
} catch (org.json.JSONException exception) {
// handle the exception
}