无法使用jQuery解析大于号的JSON字符串

时间:2013-07-14 12:08:09

标签: jquery html json tags

这是JSON:

{ "expression" : "Hello World",
  "message" : "Hello<br>World. I'm trying also to write <something> inside greater than and lower than signs."
},

这是jQuery:

$(".info").append(obj[i].message);

这是HTML:

<div class="info"></div>

我得到的是“&lt;”里面的一切和“&gt;”未显示在div中。

1 个答案:

答案 0 :(得分:4)

这与JSON无关。

如果给它一个字符串,append方法会解释你将它作为HTML标记提供的内容。很自然地,<字符必须被编码为&lt;,就像在HTML中一样。只需对其进行编码,append即可正常工作。

您提供的示例看起来像是标记,因为其中包含<br>。问题是<something>,它看起来像一个标签。它应该是&lt;something>&lt;something&gt;

如果您希望将文字解释为文字而非HTML,则可以使用text方法完全替换div的内容:

$(".info").text(obj[i].message);

...或者在您的代码尝试当前时附加到它:

$(".info").append($("<span>").text(obj[i].message).html());