Retrofit com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept

Posted Ang_qq_252390816

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Retrofit com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept相关的知识,希望对你有一定的参考价值。

报错:

com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $

原因:是接口返回来的原始数据和要转换成的数据格式不对应导致;

例如我出错的问题如下:

比如接口报错返回一个html,而且Retrofit请求接口方法,数据要解析成List<ResStoreList>格式的数据;

 解决办法:

1,如果刚开始调试接口,那就是android端和服务端没有约定好接口返回的数据格式;统一数据格式即可;

如果Android端发现不了问题,可以把Retrofit接收端的接口返回数据改成ResponseBody对象这样不管接口返回什么样的数据,都可以解析得到,不会报错了,然后可以根据数据生成具体的对象;

 2,如果是已在使用的接口,需要确认一下接口返回来的数据是否有变化;或者是否接口报错导致Retrofit解析错误;

以上是关于Retrofit com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept的主要内容,如果未能解决你的问题,请参考以下文章

使用 RxJava 和 Resuable Retrofit 创建 REST 客户端 - Observable

java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap 无法转换为 ClassName

com.google.gson.JsonObject 无法转换为 com.google.gson.JsonArray

Could not find class com.google.gson.Gson

获取java.lang.NoClassDefFoundError:com / google / gson / gson

Gson格式化报错com.google.gson.JsonSyntaxException