簡體   English   中英

SyntaxError:JSON中出現意外的令牌\\

[英]SyntaxError: Unexpected token \ in JSON at position

我正在嘗試在NodeJS / Javascript中將String解析為JSON,這是我的字符串(我無法更改,來自外部數據庫):

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

我打電話:

JSON.parse(row.raw_data)

但是正在得到:

SyntaxError: Unexpected token \ in JSON at position

我實際上認為雙重轉義是轉義字符串/ JSON的正確方法。

您的JSON無效。 您已經說過您無法更改它,這很不幸。

看起來好像已經被雙字串化了,但是最外面的引號被省略了。 如果是這樣,您可以通過在每一端添加" ,然后對其進行兩次解析來修復它,如下所示:

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

不過,理想情況下,您將需要遍歷數據庫並更正無效數據。

我實際上認為雙重轉義是轉義字符串/ JSON的正確方法。

在JSON中,字符串用雙引號( " )引起來,而不是雙轉義符。您只能對字符串中的雙引號進行轉義(帶有單個\\ )。

如果您一直在手動創建JSON字符串(使用代碼), 請不要 :-)而是創建要保存的結構,然后將其字符串化。 手動構建JSON字符串容易出錯,但是正確的JSON字符串標識符將是可靠的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM