我在解析字符串文字中的引號時出現問題。JSON解析字符串文字中的雙引號
var lit = '{"foo":"test \"1\"","bar":"test 2"}';
在控制檯中,這會給出一個錯誤'未捕獲的異常'。 我期待:
Object {foo: "test "1"", bar: "test 2"}
這裏是我的小提琴https://jsfiddle.net/bruceradtke/kor8amm5/4/
如果我指定字符串化結果變量,然後 解析變量,它工作正常。但是,如果我像上面那樣使用字符串,則不行
謝謝。
我的代碼:
var myobject = {};
myobject.foo = "test \"1\"";
myobject.bar = "test 2";
var sresult = JSON.stringify(myobject);
console.log('stringify=' + sresult);
// OK
var thaw = JSON.parse(sresult);
console.log(thaw);
var lit = '{"foo":"test \"1\"","bar":"test 2"}';
console.log(lit);
// Broken
var thaw2 = JSON.parse(lit);
那是因爲你有一個JSON字符串**裏面面值**。在字符串文字中,\是轉義字符。所以如果你想產生一個文字\,你必須轉義它:\\。但爲什麼你首先要做到這一點?它只是用於測試嗎? – 2015-04-02 15:19:27