Я получаю ClassCastException для некоторых вызовов метода, который должен возвращать JSONObject.Я понимаю, что метод возвращает JSONArray, но
1: я не знаю, почему (getZillowZpidByAddress возвращает JSONObject)
2: я не знаю, как манипулировать кодом для полученияВместо этого используйте JSONArray и извлеките из него объект JSONObject.
Вызов API:
JSONObject j = zillow.getZillowZpidByAddress(zwsid, "9048 S. DOBSON AVENUE",
"Chicago, IL 60619");
с использованием следующей процедуры API:
public JSONObject getZillowZpidByAddress(final String zwsId, final String address, final String cityStateZip)
{
final String parameterQuery = buildGetDeepSearchResultsParameterQuery(zwsId, address, cityStateZip, false);
JSONObject jsonResponse = getZillowJsonResponse(properties.deepSearchResultsUrl(), parameterQuery);
//exception on this line
return getJsonNthChildObject(jsonResponse
, new String[]{
"SearchResults:searchresults"
, "response"
, "results"
, "result"}
, "zpid");
}
Ошибка:
java.lang.ClassCastException: org.json.JSONArray cannot be cast to org.json.JSONObject
Приведение j к JSONArray не позволяет вызывать метод, и вычисление выражения в отладке вызывает то же исключение.
Я запускаю сотни адресов через него, и JSONObject сохраняется вj 8/10 раз, но я не знаю, что делать в случае, если он возвращает JSONArray.Я не знаю, как посмотреть в массив и выловить объект, не вызывая этот метод.