报错:
这个错误是指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()方法问题解决。