JSON.parse失败

Pap*_*nUK 1 javascript parsing json

我正在尝试从JSON字符串"object"创建一个JavaScript对象,但它失败并显示错误:

"SyntaxError:JSON.parse:expected','或'}'在JSON数据的第1行第48列的对象中的属性值之后"

var jsobj = JSON.parse( '{"lineID":11,"siteID":3,"mystring":"this is a \"Test\" string with quotes"}' );
Run Code Online (Sandbox Code Playgroud)

mystring是一个包含双引号但我用反斜杠正确转义它们的字符串.为什么会失败?

我注意到它在这个在线JSON解析站点上传递正常:json解析器

Que*_*tin 8

\角色是JavaScript JSON 的转义字符.

当JavaScript解析器解析字符串文字时,它会将\"JavaScript源代码转换"为字符串.

当JSON解析器解析字符串时,它会发现未转义"和错误.

要包含\"在JSON数据中,您需要转义\JavaScript字符串文字:\\".

var jsobj = JSON.parse('{"lineID":11,"siteID":3,"mystring":"this is a \\"Test\\" string with quotes"}');
console.log(jsobj);
Run Code Online (Sandbox Code Playgroud)


嵌套数据格式总是很痛苦.尽可能避免这样做.

首先在JavaScript中包含一个包含JSON的字符串文字是没有意义的.

JSON是JavaScript的一个子集.只需将JSON用作JavaScript文字即可.

var jsobj = {
  "lineID": 11,
  "siteID": 3,
  "mystring": "this is a \"Test\" string with quotes"
};

console.log(jsobj);
Run Code Online (Sandbox Code Playgroud)