我的大JSON是这样的:
{
"EmployeeMaster": {
"ImageContent": null,
"ImageName": null,
"EMP_PhotoPath": "E:\BBM0000000001comparison.png"
}
}
我试图解析它,但由于EMP_PhotoPath
中的斜杠而无法正常工作。
如何解决此错误?
答案 0 :(得分:3)
var jsonString = String.raw`{"EmployeeMaster":{"ImageContent":null,"ImageName":null,"EMP_PhotoPath":"E:\BBM0000000001comparison.png"}}`;
jsonString = jsonString.replace("\\","\\\\");
var jsonObj = JSON.parse(jsonString);
alert(jsonObj.EmployeeMaster.EMP_PhotoPath);

您可以通过执行以下操作来实现此目的:
var jsonString = String.raw`{"EmployeeMaster":{"ImageContent":null,"ImageName":null,"EMP_PhotoPath":"E:\BBM0000000001comparison.png"}}`;
jsonString = jsonString.replace("\\","\\\\");
var jsonObj = JSON.parse(jsonString);
String.raw是一种可用于获取原始字符串而无需解释的方法,
它用于获取模板字符串的原始字符串形式(即原始的未解释文本)。
所以你可以用双反斜杠替换反斜杠,然后你可以解析它以保持原始的反斜杠。
答案 1 :(得分:1)
你必须用第二个斜线逃避斜线。你的有效json看起来像那样:
{
"EmployeeMaster": {
"ImageContent": null,
"ImageName": null,
"EMP_PhotoPath": "E:\\BBM0000000001comparison.png"
}
}
ps:将其粘贴到JSONLint.com以验证。