我有一个变量var jsonData = '{"Key":"query","Value":"dept=\"Human Resources*\"","ValueType":"Edm.String"}';
我尝试使用JSON.parse(jsonData)
解析变量,但是出现了错误"Unexpected token H in JSON at position 30." 我不能改变变量的返回方式,所以这是我对问题的理解:
JSON.parse(jsonData)
出错是因为它无法识别转义的双引号,因为它完全被单引号包围。jsonData.replace(/\\"/g, "\\\\"")
或其他组合都无法找到\"
,因为JavaScript将\"
视为"
。
问题:如何正确解析此内容,通过替换转义引号为JSON.parse()
可处理的内容或使用其他方法正确解析?我想坚持使用JSON.parse()
,因为它很简单,但也可以考虑其他选项。
编辑:很遗憾,我不能在这个阶段更改变量,它只是一个更大的JSON响应的一个小例子。这是在应用程序获得API访问权限之前的临时解决方案,但我需要在此期间找到解决方案(IT部门可能很慢)。我现在正在直接访问API地址,获取一个大的JSON响应,并且浏览器使用用户OAuth的cookie进行身份验证。然后我将JSON响应复制并粘贴到我的应用程序中,以便处理数据。响应中充斥着转义的引号,手动编辑文本将是很费力的,我正在尝试避免在复制到变量之前将其复制到文本处理器中。