2017-01-27 33 views
4
位置

我試圖解析字符串JSON中的NodeJS/JavaScript的,這是我的字符串(我不能改變,從外部數據庫來):語法錯誤:在JSON意外標記在

'{\\"value1\\":\\"XYZ\\",\\"value2\\":\\"ZYX\\"}' 

我打電話:

JSON.parse(row.raw_data) 

但越來越:

SyntaxError: Unexpected token \ in JSON at position 

我竟以爲雙逃脫是個e在字符串/ JSON中轉義的正確方法。

回答

8

您的JSON無效。你說過你不能改變它,這是不幸的。

看起來像它已被雙串化,但最外面的引號已被關閉。如果是這樣,你可以通過在每月底將"修復它,然後雙擊解析它,就像這樣:

var str = '{\\"value1\\":\\"XYZ\\",\\"value2\\":\\"ZYX\\"}'; 
 
str = '"' + str + '"'; 
 
var obj = JSON.parse(JSON.parse(str)); 
 
console.log(obj);

理想的情況是,你想通過數據庫和糾正無效數據。

I actually thought double escape was the correct way of escaping in string/JSON.

在JSON,字符串被包裹在雙引號("),而不是雙逃逸。您只能在字符串(僅有一個\)內跳過雙引號

如果您一直在手動創建JSON字符串(在代碼中),請勿。 :-)相反,創建您想要保存的結構,然後對其進行字符串化。手動構建JSON字符串很容易出錯,但合適的JSON字符串將是可靠的。

+1

我最初認爲使用正則表達式切割背板,但你的解決方案更好。所以我取消了寫自己的答案,只能說:upvote :-) –

+0

謝謝。有用。 –

相關問題