【发布时间】:2018-09-15 08:41:56
【问题描述】:
我正在尝试解析从 API 获得的 JSON 字符串:
var inputString = '{ "AccountName": "NT AUTHORITY\\SYSTEM"}'
console.log(JSON.parse(inputString)) // View in browser console to see real error
以上代码报错:
未捕获的 SyntaxError:JSON 中第 31 位的意外标记 S 在 JSON.parse() 在program.html:7
现在下面的代码可以工作了:
var inputString = '{ "AccountName": "NT AUTHORITY\\\\SYSTEM"}'
console.log(JSON.parse(inputString))
显示输出:
{AccountName: "NT AUTHORITY\SYSTEM"}
反斜杠字符是 JSON 中的转义序列。但是为什么我需要四个反斜杠来创建一个反斜杠呢?不应该只有\\吗?
我从被调用的 API 获得的 JSON 响应只给了我两个 \\,只要有路径。所以我的代码正在破坏。我相信 API 的 JSON 格式是正确的。当我尝试在在线JSON viewer 上解析此响应时,他们能够成功解析它。
【问题讨论】:
标签: javascript json