Javascript無法讀取此json字符串,因爲它包含單引號字符,它將其視爲字符串的結尾。json值內的單引號
如何避免單引號使其不被視爲字符串的結尾?
var json = '{"1440167924916":{"id":1440167924916,"type":"text","content":"It's a test!"}}';
var parsed = JSON.parse(json);
Javascript無法讀取此json字符串,因爲它包含單引號字符,它將其視爲字符串的結尾。json值內的單引號
如何避免單引號使其不被視爲字符串的結尾?
var json = '{"1440167924916":{"id":1440167924916,"type":"text","content":"It's a test!"}}';
var parsed = JSON.parse(json);
使用反斜槓escape the character:
var json = '{"1440167924916":{"id":1440167924916,"type":"text","content":"It\'s a test!"}}';
var parsed = JSON.parse(json);
使用反斜線是「轉義」字符的一個例子。查看更多信息[這裏](http://www.w3schools.com/js/js_strings.asp) –
這回答了我發佈的問題。但是,我使用的解決方案是直接從json創建對象字面值,而不是通過簡單地刪除外部單引號將其轉換爲字符串。感謝Quentin指出了這一點。 – ezero
只是逃避單引號與作爲\'
這樣一個反斜槓:
var json = '{"1440167924916":{"id":1440167924916,"type":"text","content":"It\'s a test!"}}';
var parsed = JSON.parse(json);
//Output parsed to the document using JSON.stringify so it's human-readable and not just "[object Object]":
document.write(JSON.stringify(parsed));
逃避它用反斜槓
var json = '{"1440167924916":{"id":1440167924916,"type":"text","content":"It\'s a test!"}}';
var parsed = JSON.parse(json);
這給了SyntaxError:意外的令牌ILLEGAL – Quentin
@Quentin:現在應該正常工作。我想在嘗試縮進JSON的時候,按下「enter」鍵就會導致問題。 – mechanicals
你爲什麼寫出一個序列化爲JSON的對象,然後在下一行解碼它?只需編寫一個對象文字。沒有必要把你的對象放在一個字符串中。 – Fuser97381
有趣的是,當有人問一個簡單的問題,在同一分鐘內如何有相當的答案洪水。這肯定是重複的。 – Fuser97381
這與JSON無關。問題在於,您在用單引號分隔的JavaScript字符串文本中有單引號。字符串包含JSON的事實就在這一點上。 (爲什麼要編寫JSON的靜態字符串,然後解析它,爲什麼不只是從邊緣刪除引號並將其視爲JavaScript對象字面量?) – Quentin