我想更多地瞭解JSON.parse()來法的核心功能,但我不明白爲什麼這個字符串返回一個錯誤:JSON.parse(),爲什麼這個轉義字符返回一個錯誤?
JSON.parse('["foo\\"]'); // > "Unexpected end of input"
爲什麼這個不歸[「富\」] ?
我想更多地瞭解JSON.parse()來法的核心功能,但我不明白爲什麼這個字符串返回一個錯誤:JSON.parse(),爲什麼這個轉義字符返回一個錯誤?
JSON.parse('["foo\\"]'); // > "Unexpected end of input"
爲什麼這個不歸[「富\」] ?
因爲字符串沒有終止,因爲第二"
由\
逃脫,因爲你解析的數據是:
["foo\"]
您可以
var s = '["foo\\"]';
alert(s); // or
console.log(s);
確認這個自己這是因爲表達式中JS和JSON級別的\
的累積轉義操作。
你的字符串["foo\\"]
["foo\"]
首先是因爲它的雙\\
["foo\"]
其逃脫"
所以,是JSON解析器的未終止字符串。
如果您需要在json級別解析["foo\\"]
,請組裝要轉義的js字符串。這是["foo\\\\\"]
。
測試。
s = '["foo\\\\\"]';
console.log(s); //'["foo\\"]'
console.log(JSON.parse(s);) // ["foo\"]