Unexpected token ‘‘‘, “‘{“type“:““... is not valid JSON

在低代码schema解析JSON时遇到错误,虽然控制台解析正常,但在项目中执行JSON.parse()时报错。经过排查,确认问题出在JSON格式上,包括检查特殊字符、空格、换行符的转义以及使用在线工具进行校验。最终发现多了一个单引号导致错误,修正后问题解决。

尝试低代码schema解析JSON时报错,奇怪的是控制台解析正常,项目js执行JSON.parse()报错,简直无语了,,,

只能挨个检查了,首先温习了下JSON 的标准格式:

JSON的合法符号:{(左大括号) }(右大括号) "(双引号) :(冒号) ,(逗号) [(左中括号) ](右中括号)

JSON字符串:特殊字符可在字符前面加 \ 或使用 \u 加 4位16进制数来处理{"name":"jobs"}

JSON布尔:必须小写的true和false {"bool":true} JSON空:必须小写的null {"object":null}

JSON数值:不能使用8/16进制 {"num":60}{"num":-60}{"num":6.6666}{"num":1e+6}{"num":1e-6} JSON对象 { "starcraft": { "INC": "Blizzard", "price": 60 }}

JSON数组 {"name": ["workers",10]}

JSON对象数组 {"array": [{"name": "workers"},{"name": "teacher","sex": 30}]}

按以下方法逐一尝试:

1、尝试检查是否有空格,trim(),去除

2、.replace(/\n/g,"\\n").replace(/\r/g,"\\r")

后端返回字符串存在换行,进行JSON化之前需对换行符进行转义

3、JSON.parse之前再来一次JSON.stringify,测试可行,但是不太放心,继续扒拉

4、回到报错行,报错信息处,显示type字段前后存在无效的json格式,敲出整个字符串,挨个检查,折腾到第二天,通过JSON在线 | JSON解析格式化—SO JSON在线工具检查无误,

 

实在无语,想了下 不再相信这个网站了,

于是看到了这个网站,强烈推荐

JSON在线校验格式化工具(Be JSON)

 错误成功在调试工具复现,接下来就简单了

 工具还会提示黑色部分有错误,逐个检查发现多了个’单引号,

此次,搞定~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值