首页 > 解决方案 > 预期 BEGIN_ARRAY 但 BEGIN_OBJECT 在第 1 行第 2 列路径 $?

问题描述

当我调用天气免费 API

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

问题是

  1. 我的邮递员和使用 Call in Retrofit 我得到数据
  2. 使用 POJO 类我得到响应错误

错误应为 BEGIN_ARRAY,但在第 1 行第 2 列路径为 BEGIN_OBJECT

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());
        }
});

标签: javaandroidretrofit2

解决方案


检查你的 POJO。检查它是否与您收到的响应一致。根据您提到的错误,您在响应中获得了一个 JsonObject,您已在 POJO 中声明了一个 JsonArray。


推荐阅读