1

在尝试在 Titan Studio for mobile app 项目上解析以下字符串时,我得到了

错误: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 解析包含转义字符的字符串。

如果没有,你能告诉我它的程序吗?

4

2 回答 2

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 对象字面量。(当然,我承认这可能是有原因的。)

于 2013-08-01T19:13:18.937 回答
0

字符串中有两个\r\,应该是\r\n. 更改这些,它会验证为正确的 JSON。

于 2013-08-01T19:13:49.043 回答