jQuery JSON.parse异常

时间:2017-09-07 09:16:41

标签: javascript jquery

这将失败:

 var obj= JSON.parse('{"a": "\"aa\" vv","b": "b"}');

- > Uncaught SyntaxError:位于第8位的JSON中的意外标记a 这是什么问题? a和v之间的空白区域? 文件说这应该工作正常吗?

THX

3 个答案:

答案 0 :(得分:5)

您需要使用\\代替\

var obj= JSON.parse('{"a": "\\"aa\\" vv","b": "b"}');
console.log(obj.a);
console.log(obj.b);

答案 1 :(得分:0)

你应该使用双反斜杠\\

var obj= JSON.parse('{"a": "\\"aa\\" vv","b": "b"}');
console.log(obj);

答案 2 :(得分:0)

这里解释了simpleObject和object之间的\\\用法之间的差异,以String的形式作为JSON.parse()的参数

var realObj= {"a": "\"aa\" vv","b": "b"};  // doubleQuote is escaped with single \ so that doubleQuote becomes part of value string in key-value pair. Hence, single backwardSlash
console.log("realObj.a==>"+realObj.a);
console.log("realObj.b==>"+realObj.b);

var objFromParsedJSON= JSON.parse('{"a": "\\"aa\\" vv","b": "b"}'); //doubleQuote is escaped with double \\ so that the argument of JSON.parse should also escape doubleQuote and interpret it as \" after processing. Hence, double \\
console.log("objFromParsedJSON.a==>"+objFromParsedJSON.a);
console.log("objFromParsedJSON.b==>"+objFromParsedJSON.b);