我从API模块获取以下字符串:
{"value":"{\"Id\":\"100\",\"OrganizationName\":\"[_+-:|;'.\\\/] Arizona
Grower Automation\"}"}
当我在客户端使用JSON.parse时,我得到:
Uncaught SyntaxError: Unexpected token I in JSON at position 12
如果里面的引号是双转义的,这是可行的,但是什么是最好的方法呢?更具体地说,这是由Ionic Capacitor插件从本机代码返回到JavaScript环境返回的。
答案 0 :(得分: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"}"
我们需要三个反斜杠,因为前两个代表一个转义的反斜杠,第三个是双引号的转义字符。
答案 1 :(得分:0)
<script>
var jsonString = "{\"value\":{\"Id\":\"100\",\"OrganizationName\":\"[_+-:|;'.\\\/] Arizona Grower Automation\"}}";
console.log(JSON.parse(jsonString));
</script>