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

Posted

技术标签:

【中文标题】JSON.parse 嵌套 JSON 字符串属性解析【英文标题】:JSON.parse nested JSON string property parsing 【发布时间】:2019-03-31 11:59:24 【问题描述】:

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

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

当我在客户端使用 JSON.parse 时,我得到:

Uncaught SyntaxError: Unexpected token I in JSON at position 12

如果里面的引号被双重转义,这有效,但最好的方法是什么?更具体地说,这是由 Ionic Capacitor 插件从本机代码返回到 javascript 环境。

【问题讨论】:

【参考方案1】:

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

/// 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""

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

【讨论】:

以上是关于JSON.parse 嵌套 JSON 字符串属性解析的主要内容,如果未能解决你的问题,请参考以下文章

秒懂JSON.parse()与JSON.stringify()的区别

JSON.parse JSON.stringify

解析 JSON 字符串中的嵌套对象

JSON.parse()与JSON.stringify()

JSON.stringify() 与JSON.parse()

JSON.parse和JSON.stringify的作用