报错:应用json.parseObject()方法时JSONException: syntax error, expect {, actual [, pos 0

报错:

这个错误是指json字符串的格式不正确,导致解析失败

因为在前后端进行数据交互的时候,经常会遇到数据之间相互解析和转换的场景,当我在后台将json格式转换成javaBean类报如下错误:

JSONException: syntax error, expect {
     , actual [, pos 0

翻译:语法错误,期望是{,实际上是[ ,

我的字符串json格式如下

[{
     
	"name": "张三",
	"age": 13
}, {
     
	"name": "李四",
	"age": 32
}]

分析原因:

我们转换json的普通对象格式:{name:“张三”,age:13},实际上是json的数组形式:[{name:“张三”,age:13},{name:“李四”,age:32}],导致方法json.parseObject()无法解析,报错了

parseObject(String str)的作用:

JSON.parseObject(String str)是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了。


解决方式:

在把字符串转为对象时,我的字符串格式为[{},{}],明显是数组型的字符串

我们就应该想到JSON.parseArray():这个方法的作用就是将json格式的数据转换成数组格式。
假设有Person这个类,有json类型数据jsonStr =[{name:“张三”,age:13},{name:“李四”,age:32}],那么List lists = json.parseArray(jsonStr, Person.class);lists就可以接收jsonStr了

解决:将json.parseObject()方法用json.parseArray()方法问题解决。

你可能感兴趣的:(Java,前端,json,字符串,java,fast,fastJson)