【发布时间】:2015-09-17 09:57:19
【问题描述】:
我想做的很简单。将此包含 json 对象的数组解析为 Javascript 数组。
var merchantsJson = JSON.parse('[{"id":61693,"name":"Más"},{"id":61690,"name":"\u0027\u0022\u003C/div\u003E"}]');
但 unicode 字符 \u003C 似乎破坏了解析器。在 chrome 控制台中,我看到“Uncaught SyntaxError: Unexpected token
更多信息。以上是代码被评估的内容。实际上代码中包含一个jsp表达式。
var merchantsJson = JSON.parse('${jsonArr}');
如果我删除单引号,没有问题,但 eclipse 给我一个“缺少分号”的错误消息。是否可以像我试图做的那样用引号解析数组?
【问题讨论】:
-
您收到了很多与 Juhana 的评论类似的回复,但请注意 JSON 实际上并不是 JavaScript 的子集。在某些极端情况下,当您使用 Unicode 时,JavaScript 解释器无法正确解析有效的 JSON:stackoverflow.com/questions/23752156/… - 请注意此建议
-
-
@Juhana 我不熟悉 JSP 的 JSON 字符串化器,所以我认为一般警告是合理的。如果可以信任
\u-encode麻烦的字符,那就没有问题了。 -
@AaronDufour 从问题中可以看出它对
<和>之类的字符进行编码,可以肯定的是,它还可以对已知会破坏兼容性的字符进行编码。 -
@Juhana 变量名
jsonArr表明 OP 已经完成了字符串化,我不愿意假设所述字符串化意识到 JSON 与 JavaScript 在 Unicode 方面的复杂性。我现在明白这只是一个误导性的名称。
标签: javascript jquery json jsp interpolation