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