retrofit加载失败java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1...

来源:互联网 发布:java从入门到精通电子 编辑:程序博客网 时间:2024/05/19 03:43

使用retrofit加载数据失败
失败打印:java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $

retrofit网址接口代码

package com.yz.luxury.r_innerface;import com.yz.luxury.bean.HomeBean;import java.util.List;import retrofit2.Call;import retrofit2.http.GET;public interface InerLuxury  {//    首页   @GET("home_page?askTime=1")   Call<List<HomeBean.FloorsBean>> getFloorBeans();}

以下是这么写以及错误的打印
这里写图片描述

错误的意思大致是gson解析出来的应该是对象 而不是数组
解决方式:
所以我将返回值的

 Call<List<HomeBean.FloorsBean>> 都改为  Call<HomeBean>

更改代码如下
retrofit网址接口代码

package com.yz.luxury.r_innerface;import com.yz.luxury.bean.HomeBean;import java.util.List;import retrofit2.Call;import retrofit2.http.GET;public interface InerLuxury  {//    首页   @GET("home_page?askTime=1")   Call<HomeBean> getHomeBean();}

首页fragment使用retrofit的代码

  Call<HomeBean> homeBean_Floors = iLuxury.getHomeBean();        homeBean_Floors.enqueue(new Callback<HomeBean>() {            @Override            public void onResponse(Call<HomeBean> call, Response<HomeBean                    > response) {                Log.i(TAG, "相应是否成功-->>"+response.isSuccess());                if (response.isSuccess()) {//                   数据源//                    mListData = response.body();                    HomeBean body = response.body();                    mListData= body.getFloors();                    mAdapter = new HomeRecyclerAdapter(mContext, mListData);                    rv_Homefragment.setAdapter(mAdapter);                }            }            @Override            public void onFailure(Call<HomeBean> call, Throwable t) {            }        });
0 0
原创粉丝点击