我正在尝试在NodeJS / Javascript中解析String到JSON,这是我的字符串(我无法更改,来自外部数据库):
'{\\"value1\\":\\"XYZ\\",\\"value2\\":\\"ZYX\\"}'
我在打电话:
JSON.parse(row.raw_data)
但是得到了:
SyntaxError: Unexpected token \ in JSON at position
我实际上认为双重转义是在字符串/ JSON中转义的正确方法。
答案 0 :(得分:9)
您的JSON无效。你说你不能改变它,这是不幸的。
它看起来就像它被双重字符串化一样,但最后的引号却被取消了。如果是这样,您可以通过在每端添加"
然后对其进行双重解析来修复它,如下所示:
var str = '{\\"value1\\":\\"XYZ\\",\\"value2\\":\\"ZYX\\"}';
str = '"' + str + '"';
var obj = JSON.parse(JSON.parse(str));
console.log(obj);

但理想情况下,您希望浏览数据库并更正无效数据。
我实际上认为双重转义是在字符串/ JSON中转义的正确方法。
在JSON中,字符串用双引号("
)包装,而不是双重转义。您只能在字符串中使用双引号(使用单个\
)。
如果您一直在手动创建JSON字符串(在代码中),不要。 :-)而是,创建要保存的结构,然后对其进行字符串化。手动构建JSON字符串容易出错,但正确的JSON字符串将是可靠的。