JSON Lint说它有效但JSON.parse会抛出错误

Sta*_*tan 6 javascript json

我有简单的JSON,我需要解析对象.奇怪的是,即使我将我的JSON字符串复制并粘贴到JSONLint(http://jsonlint.com/),它也会起作用,但它会显示它是有效的.

var string = '{"token":"9eebcdc435686459c0e0faac854997f3","email":"201403050007950","id":"13","updated_at":"2014-03-05 10:34:51","messageguides":"[{\"name\":\"Un-named Messaging Guide 1\",\"pages\":[\"sustainabilitydirectors\",\"marketingnbusinessdevelopmentdirectors\"],\"date\":1394015692958}]"}';

var obj = JSON.parse(string); // Unexpected token n

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

Que*_*tin 12

\解析原始JSON时,数据中的字符将被视为JSON转义字符.

将JSON嵌入JavaScript字符串时,它们被视为JavaScript转义字符而不是JSON转义字符.

\\当您将JSON表示为JavaScript字符串时,您需要转义它们.


也就是说,通常只需将JSON作为对象(或数组)文字放入JavaScript中,而不是将其嵌入到字符串中,然后将其作为单独的步骤进行解析.

var obj = {"token":"9eebcdc435686459c0e0faac854997f3","email":"201403050007950","id":"13","updated_at":"2014-03-05 10:34:51","messageguides":"[{\"name\":\"Un-named Messaging Guide 1\",\"pages\":[\"sustainabilitydirectors\",\"marketingnbusinessdevelopmentdirectors\"],\"date\":1394015692958}]"};
Run Code Online (Sandbox Code Playgroud)