报错如下
SyntaxError: Expected property name or ‘}‘ in JsoN atposition 1
解决办法
- 上面的报错原因在于: 在代码中通过JSON.parse()进行转换,发现如下图所示报错了。其实主要原因是单引号和双引号引起的问题。如果转义的字符串进行了赋值,那么上面一层代码会多了一层的转义。这里加2个JSON.parse()是因为,第一次转换的时候还是个字符串。我们要在json字符串前后手动加上双引号,然后在进行JSON.parse()的转换即可
JSON.parse(JSON.parse('"' + item.remark + '"'))
- 另外,我们注意在使用 JSON.parse() 之前需要对目标字符串进行校验,是否为合格的JSON
function isJSON(str) {
const regex = /^\s*[\{\[]/;
return regex.test(str);
}
...
if(isJSON(str)) {
const reault = JSON.parse(str)
}