json解析错误怎么办?

如题所述

1、先检查json格式是否符合标准,各种转义的地方容易出问题。
2、检查编码是否统一。
3、json的包有没导错。排除了,就是函数调用的问题了- -!看样子传入的是array数据,应该用jsonArray解析。JSONArray jsonArray = new JSONArray(jsonContent.toString());然后可以逐一读取里面的数据:JSONObject itemObj = jsonArray.getJSONObject(i)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-30

json解析错误,可以采用分部检查的方式进行解决。

这是客户机和服务器之间的数据交换格式。软件通常会犯这个错误。您可以先尝试更改网络连接方式。例如,您可以使用wifi或稍后使用它。

如果不能,可以卸载并重新安装。但如果是手机系统的问题,你可以考虑不使用这个软件。它太麻了,无法重新安装。你可以试试。

json在很多地方都有使用。如果是在移动互联网上,应该是客户端和接口之间的数据采集问题。建议你检查一下自己的程序。检查json格式是否正确。其次,看看代码是否正确。

json格式按照上述格式从左到右进行解析。如果格式不正确,将报告错误。例如,多个空格、多个引号或非字符。

如果json的数据中有很多错误,就很难找到问题所在。建议通过模拟二分法逐步消除json字符。

第2个回答  2019-09-25

虽然后台组装成json数组的类型了,前台也得到了json类型的数据了,但数据格式不是json,导致解析失败。

1、方法一:

public static string ToJson(object obj, bool prettyPrint);

作用:对象的序列化。即将对象转换成一个json字符串,并返回该字符串。

第一个参数为要转换的对象

第二个参数可以省略,省略时默认为false。关于作用,建议将自己的json打印到屏幕就可以一目了然。

2、方法二:

public static T FromJson(string json);

作用:对象的反序列化。即将一个json字符串转换成一个对象,并返回对象。参数为json。

3、方法三:

public static void FromJsonOverwrite(string json, object objectToOverwrite);

作用:类似于第二个方法,第二个方法是将json转换成对象,并返回该对象,在该过程中需要创建一个新对象。

而这个方法,是将一个json的内容去覆盖或者说更新一个对象,过程中没有创建新的对象。这样会更加节省内存。

第一个参数是一个json;

第二个是要被第一个参数去更新或者覆盖的对象。

第3个回答  2019-09-24

json解析错误解决方法:

1、切入点

我们通常情况下跟图中一样采用的是Gosn工厂变换器,而本次抛出异常的地方就是这个变换器,自定义工厂变换器就可以完美解决我们的问题。

2、自定义Gson响应体变换器

附上APIResponse类,ErrorResponse类和ResultException类。

3、自定义响应变换工厂

4、调用自定义的响应变换工厂

在构造Retrofit时在addConverterFactory()方法中传入ResponseConverterFactory.create()就可以了。

5、在网络请求的onFailure中接收异常信息并进行处理

到这里就完成了,别忘了Gson的请求体变换器是default限定的。改改限定符就好了。

第4个回答  2019-09-26
如果报错是of type org.json.JSONArray cannot be converted to JSONObject,根据错误提示, 应该赋值给JSONArray类型的对象, 或者可以把图中的json字符串放到 json在线解析工具里面看看json格式是否正确。
相似回答