我想在NodeJS/Javascript中将一个字符串解析为JSON格式,这是我的字符串(来自外部数据库,无法更改):
'{\\"value1\\":\\"XYZ\\",\\"value2\\":\\"ZYX\\"}'
我正在调用:
JSON.parse(row.raw_data)
但是正在获得:
SyntaxError: Unexpected token \ in JSON at position
我曾经认为在字符串/JSON中使用双重转义是正确的转义方式。
我想在NodeJS/Javascript中将一个字符串解析为JSON格式,这是我的字符串(来自外部数据库,无法更改):
'{\\"value1\\":\\"XYZ\\",\\"value2\\":\\"ZYX\\"}'
我正在调用:
JSON.parse(row.raw_data)
但是正在获得:
SyntaxError: Unexpected token \ in JSON at position
我曾经认为在字符串/JSON中使用双重转义是正确的转义方式。
您的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 字符串化器将是可靠的。