繁体   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