admin管理员组

文章数量:1441132

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

报错:

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

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

代码语言:javascript代码运行次数:0运行复制
JSONException: syntax error, expect {, actual [, pos 0

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

我的字符串json格式如下

代码语言:javascript代码运行次数:0运行复制
[{
	"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()方法问题解决。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-07,如有侵权请联系 cloudcommunity@tencent 删除jsonerrorexpectsyntax字符串

本文标签: 报错应用jsonparseObject()方法时JSONException syntax errorexpectactualpos 0