SyntaxError: Expected property name or ‘}‘ in JsoN atposition 1

文章讲述了在处理包含转义的JSON字符串时遇到的解析问题,特别是单引号和双引号的匹配导致的错误。解决方案是在字符串前后添加双引号,然后使用两次JSON.parse来正确转换成JSON对象。这种方法成功解决了浏览器F12控制台能正常解析但代码中报错的矛盾。

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

{\"events\":[{\"type\":0,\"data\":{},\"timestamp\":1675991917151},{\"type\":1,\"data\":{},\"timestamp\":1675991917175},{\"type\":4,\"data\":{\"href\":\"\",\"width\":414,\"height\":725},\"timestamp\":1675991917175}]}

不知道你们有没有遇到过,明明是如上所示,加了一层转义的json字符串。在代码中通过JSON.parse()进行转换,发现如下图所示报错了。

 但是。通过浏览器的F12,在控制台自行转义,发现是成功的。

 其实主要原因是单引号和双引号引起的问题。在单引号中。如果转义的字符串进行了赋值,那么上面一层代码会多了一层的转义

 如上图所示,有2个反斜杆。

这时。我们要在json字符串前后手动加上双引号,然后在进行JSON.parse()的转换即可

JSON.parse(JSON.parse('"'+这里放字符串json的参数+'"'))

这里加2个JSON.parse()是因为,第一次转换的时候还是个字符串。再多转换一次就可以得到json对象啦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值