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()的区别