Ожидаемый BEGIN_ARRAY, но был ли BEGIN_OBJECT в строке 1, столбец 2, путь $? - PullRequest
0 голосов
/ 20 декабря 2018

Когда я звоню по погодному интерфейсу API

https://api.apixu.com/v1/forecast.json?key=8f71b99b716f4278b98103446181912&q=Paris

Проблемы

  1. Мой почтальон и используя Call in Retrofit я получаю данные
  2. Используя класс POJO, я получаю ошибку ответа

ОШИБКА Ожидаемый BEGIN_ARRAY, но был BEGIN_OBJECT в строке 1 пути 2 столбца $

Call<List<DetailsMain>> listCall = api.getDetailsByParameter("8f71b99b716f4278b98103446181912", "Paris");

listCall.enqueue(new Callback<List<DetailsMain>>() {
        @Override
        public void onResponse(Call<List<DetailsMain>> call, Response<List<DetailsMain>> response) {
            DetailsMainList.setValue(response.body());
            Log.d("data", "" + response.body());
        }

        @Override
        public void onFailure(Call<List<DetailsMain>> call, Throwable t) {
            Log.d("Error", "" + t.getMessage());
        }
});

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Вы получаете Список в ответе, что означает, что json начинается с jsonArray, но ответ начинается с Json Object, поэтому код должен выглядеть так:

Call<DetailsMain> listCall = api.getDetailsByParameter("8f71b99b716f4278b98103446181912", "Paris");

, когда вы ставите запрос на модернизацию, вы также должны изменить Список (иначекомпилятор показывает ошибку)

Примечание: DetailsMain - это ваш класс pojo, который вы можете сгенерировать из любого плагина онлайн-инструмента / студии Android.

0 голосов
/ 20 декабря 2018

Проверьте свой POJO.Проверьте, соответствует ли это полученному вами ответу.В соответствии с упомянутой вами ошибкой в ​​вашем ответе вы получаете объект JsonObject, для которого вы объявили JsonArray в вашем POJO.

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