Gson解析错误,com.google.gson.JsonSyntaxException: java.lang.IllegalStateException

具体异常如下:

com.google.gson.JsonSyntaxException:Java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 38 path $.extend[0];

意思是:你所定好解析Json的规则要求开始是 ARRAY,但实际上你请求的Json数据开始确是 OBJECT

出现这种错误,建议从以下两个方向着手:

1.看一下你所写的Bean类的参数类型和返回值;

2.看一下你写的网络框架中制定的泛型;

我的错误是由于泛型制定错误引起的。

这是我请求到的Json字符串

{"code":0,"message":"操作成功","result":{"PHOTOMOB":"http://xxxxxxxxxx/xxxxxxxx/pub/images/2017/0518/14951038082681061_0.jpg","MOBILENO":"185xxxxxxxxxx","USERID":"185xxxxxxxx","NICKNAME":"Kingsir"}}

错误的泛型:





正确的泛型:




BaseBean是每个Json字符串都会有的,这个是必须的,但不同的是,有的result字段里是个集合,有的是个对象,所以为了避免麻烦,可以直接使用BaseBean<Object>来接,回想起来是个很小的错误,却耽误了时间,记下来增加自己的道行,以免下次再遇到的时候重蹈覆辙

推荐阅读更多精彩内容