JSON.parse()解析json错误 解决方案及原因分析

在使用JSON.parse() 对自定义的json字符串进行转换时,报语法错误,如下:

var jsons = "{'abc':'lalala'}";
JSON.parse(jsons)//报错

很奇怪,js的语法规范中对引号的表述是:
与 PHP 中的双引号和单引号会影响对字符串的解释方式不同, ECMAScript 中的这两种语法形式没有什么区别。用双引号表示的字符串和用单引号表示的字符串完全相同。不过,以双引号开头的字符串也必须以双引号结尾,而以单引号开头的字符串必须以单引号结尾。

查阅资料发现 是自定义json字符串的写法不标准,
而JSON.parse()只能解析标准的json写法 即:

'{"abc":"lalala"}';

也可以用JSON.stringify()把一个js的对象序列化成json字符串,看看标准的写法长什么样
参考资料:
MDN – JSON.parse()
MDN – JSON.stringify()
JavaScript对象 与 JSON 的区别

发表评论

电子邮件地址不会被公开。 必填项已用*标注