尝试低代码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在线工具检查无误,

实在无语,想了下 不再相信这个网站了,
于是看到了这个网站,强烈推荐

错误成功在调试工具复现,接下来就简单了
工具还会提示黑色部分有错误,逐个检查发现多了个’单引号,

此次,搞定~

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

2879

被折叠的 条评论
为什么被折叠?



