解析嵌套的JSON字符串属性:JSON.parse

3

我从一个API模块得到了以下的字符串:

{"value":"{\"Id\":\"100\",\"OrganizationName\":\"[_+-:|;'.\\\/] Arizona 
Grower Automation\"}"}

当我在客户端使用JSON.parse时,我会得到以下结果:
Uncaught SyntaxError: Unexpected token I in JSON at position 12

如果内部的引号被双重转义,则此方法有效,但最佳方法是什么?更具体地说,这是由Ionic Capacitor插件从本地代码返回到JavaScript环境的。

1个回答

3

您需要转义反斜杠和双引号:

/// NO!
JSON.parse('{"value":"{\"Id\":\"100\",\"OrganizationName\":\"[_+-:|;\'.\\\/] Arizona Grower Automation\"}"}');
/// Syntax Error: Unexpected token I in JSON at position 12


/// YES!
JSON.parse('{"value":"{\\\"Id\\\":\\\"100\\\",\\\"OrganizationName\\\":\\\"[_+-:|;\'.\\\/] Arizona Grower Automation\\\"}"}');
/// value: "{"Id":"100","OrganizationName":"[_+-:|;'./] Arizona Grower Automation"}"

我们需要三个反斜杠,因为前两个代表一个被转义的反斜杠,第三个是双引号的转义字符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接