Извлечение данных JSONArray и приведение к JSONObject - PullRequest
0 голосов
/ 22 мая 2019

Я получаю 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.Я не знаю, как посмотреть в массив и выловить объект, не вызывая этот метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...