SyntaxError:位于JSON的意外的令牌\

Mic*_*sen 5 javascript json node.js

我正在尝试在NodeJS/Javascript中解析String到JSON,这是我的字符串(我无法更改,来自外部数据库):

'{\\"value1\\":\\"XYZ\\",\\"value2\\":\\"ZYX\\"}'
Run Code Online (Sandbox Code Playgroud)

我打电话给:

JSON.parse(row.raw_data)
Run Code Online (Sandbox Code Playgroud)

但是得到了:

SyntaxError: Unexpected token \ in JSON at position
Run Code Online (Sandbox Code Playgroud)

我实际上认为双重转义是在字符串/ JSON中转义的正确方法.

T.J*_*der 9

您的JSON无效.你说你不能改变它,这是不幸的.

看起来像是双字符串化的,但最后的引号却被忽略了.如果是这样,您可以通过"在每一端添加然后对其进行双重解析来修复它,如下所示:

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

但理想情况下,您需要浏览数据库并更正无效数据.

我实际上认为双重转义是在字符串/ JSON中转义的正确方法.

在JSON中,字符串包含在双引号(")中,而不是双重转义.您只能字符串中使用双引号(使用单引号\).

如果您一直在手动创建JSON字符串(在代码中),请不要.:-)而是,创建要保存的结构,然后对其进行字符串化.手动构建JSON字符串容易出错,但正确的JSON字符串将是可靠的.