2015-10-09 69 views

回答

0

因爲字符串沒有終止,因爲第二"\逃脫,因爲你解析的數據是:

["foo\"] 

您可以

var s = '["foo\\"]'; 
alert(s); // or 
console.log(s); 
0

確認這個自己這是因爲表達式中JS和JSON級別的\的累積轉義操作。

你的字符串["foo\\"]

  1. 通過JS逃到是["foo\"]首先是因爲它的雙\\
  2. 現在它被髮送到JSON.parse像["foo\"]其逃脫"

所以,是JSON解析器的未終止字符串。

如果您需要在json級別解析["foo\\"],請組裝要轉義的js字符串。這是["foo\\\\\"]

測試。

s = '["foo\\\\\"]'; 
console.log(s);    //'["foo\\"]' 
console.log(JSON.parse(s);) // ["foo\"] 
相關問題