Retrofit+RxJava 网络请求报错 Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 22 path $.data

1.一定要明白含义:
以上错误从字面看就是类造型失败的异常:需要一个array 但是给到了一个 object;

  这个错误,之前遇到过,但是昨天遇到,把这个含义给搞反了,找了半天问题;

2.这个错误可能的原因有两个

1)移动端,网络请求解析字符串时,构造的bean类型与返回的字符串类型不一致;

   一定要仔细检查每个环节,我的bean 构造正确;但是在刚开始写接口的时候service中的返回类型不正确;

因为刚开始打算返回一个类型,后来在请求过程中觉得不行,自己又构造了一个bean,所以地方都改了,就是

service那里没有改;我为了代码简介用的反射,所以不容易找到这个类型。

   刚开始确信自己没问题,一直和服务端沟通返回类型是否有其他的,但是服务端确信没有;我很怀疑自己了,

晚上回家继续找,才明白了这个含义,原来是自己声明接口时的返回类型不一致;

2)服务端,移动端确信没有问题,那就服务端返回的类型有不一致的时候,你可以先测试接口的各种情形;

错误、成功、失败等情形,看这个字段的类型是否一致,再去找服务端修改。

3.先找接口返回错误案例 没有就再找代码原因

我遇到这个错误好几次,前几次都是服务端问题,后来一遇到就确信是返回数据错误,但是沟通了半天也不是,自己又找原因,自己失误,所以总结一下,避免大伙走弯路

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值