为什么你使用JSON.parse 总是抛出异常
前言
JSON.parse 主要用于将已经序列化的JSON字符串解析成JavaScript的值或者对象,这个过程我们叫做反序列化。在反序列化过程中,最不希望就是SyntaxError 异常了
语法
JSON.parse(text[, reviver])
参数
text:必填参数,表示要被解析成js值的JSON字符串,字符串需满足JSON规范
reviver:可选参数,如果传入该函数,则在parse函数返回前,调用该函数对解析生成的原始值做处理
三级标题
返回JSON字符串对应的JavaScript值或对象
异常
如果待解析的字符串不符合JSON规范,则会抛出SyntaxError异常
JSON规范
JSON是一种语法,用来序列化对象、数组、数值、字符串、布尔值和null,它是基于JavaScript语法,但是又与之不同。也就是说Javascript不是JSON,JSON也不是Javascript,两者不可等同。为了便于梳理JSON规范的具体细则,见下表:
注:JSON字符串未说明,默认使用单引号
根据如上的JSON规范表,如果传入的字符串不符合规范,则会抛出SyntaxError异常