这将失败:
var obj= JSON.parse('{"a": "\"aa\" vv","b": "b"}');
- > Uncaught SyntaxError:位于第8位的JSON中的意外标记a 这是什么问题? a和v之间的空白区域? 文件说这应该工作正常吗?
THX
答案 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);