在试图解析钛工作室移动应用程序项目中的以下字符串时,我得到了
错误: profileSkills上的意外令牌“:”分析
des='[{"jobId":0,"jobPositionName":"NA","companyId":0,"companyDisplayName":"NA","profileSkills":"Analysis\r\nAnalysis\r\nQuality Assurance\r\nProject Management\r\nProgrammer Analyst\r\n"}]';
desjson=JSON.parse(des);
任何人都可以帮助我,我是否可以使用JSON解析包含转义字符的字符串。
如果没有,你能告诉我它的程序。
答案 0 :(得分:0)
您需要使用双反斜杠对特殊字符进行编码,因为JSON解析器会期望它们被转义。
var des='[{"jobId":0,"jobPositionName":"NA","companyId":0,"companyDisplayName":"NA","profileSkills":"Analysis\\r\\nAnalysis\\r\\nQuality Assurance\\r\\nProject Management\\r\\nProgrammer Analyst\\r\\n"}]';
如果您实际上将JSON 字符串声明为JavaScript字符串文字,那么您必须考虑到当JavaScript解析器看到这些转义字符时,它将构建一个字符串真实回车符和换行符。之后出现的JSON解析器将不喜欢它们。
另一方面,如果你的JSON真的来自服务器,那么“线上”的JSON应不加倍反斜杠。
我还应该注意,很少有理由将JSON字符串作为JavaScript代码中的文字。在大多数情况下,它可能也是一个JavaScript对象文字。 (我承认当然可能有某些原因。)
答案 1 :(得分:0)
字符串中有两个\r\
,应为\r\n
。更改这些,并验证为正确的JSON。