即使转义,双引号也会导致解析错误。
看下面的代码:
//parse the json in javascript
var testJson = '{"result": ["lunch", "\"Show\""] }';
var tags = JSON.parse(testJson);
alert (tags.result[1]);
因为双引号已经被转义,所以出现语法解析错误。
即使使用eval()
也无法起作用。
但是如果我像这样用双斜杠转义它:
var result = '{"result": ["lunch", "\\"Show\\""] }';
var tags = JSON.parse(result);
alert (tags.result[1]);
那么它就能正常工作了。
为什么在javascript中我们需要使用双斜杠?问题是PHP的json_encode()
函数会用一个斜杠转义一个双引号(像这样:\"show\"
),但是JSON.parse()
不能解析。我该如何处理这种情况?