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

本文深入解析了在将JSON格式转换为JavaBean时遇到的常见错误:JSONException:syntaxerror,expect{,actual[,pos0。详细分析了错误产生的原因,即混淆了JSON对象与JSON数组的格式,并提供了正确的解决方案,使用JSON.parseArray()方法来处理JSON数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错:

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲲志说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值