【问题标题】:Can't parse JSON string with greater than sign using jQuery无法使用 jQuery 解析大于号的 JSON 字符串
【发布时间】:2013-07-14 12:08:09
【问题描述】:

这是 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>

我得到的是“”内的所有内容都没有显示在div中。

【问题讨论】:

  • 查看源代码时是否存在?尝试一个 <而不是

标签: jquery html json tags


【解决方案1】:

这与 JSON 无关。

如果你给它一个字符串,append 方法会将你给它的内容解释为 HTML 标记。所以很自然,&amp;lt; 字符必须正确编码为&amp;lt;,就像在 HTML 中一样。只需对它们进行编码,append 就会正常工作。

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

如果您希望将文本解释为文本,而不是 HTML,您可以使用 text 方法,或者完全替换 div 的内容:

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

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

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

【讨论】:

  • 是的,感谢您的解释。我已经放弃使用 <因为它不适用于 。现在
    没问题。问题是我需要将
    显示为 HTML 并将 显示为文本。
  • @MarioLimaCavalcanti:当然&amp;lt; 适用于&amp;lt;something&amp;gt;,就像在 HTML 中一样(因为这 HTML)。 (我在这里发布了 jsbin 链接,但现在 jsbin 似乎已损坏。)
  • 哦,我看到了链接,但找不到工作示例和损坏示例之间的区别。 T 试图写 ,但出现相同,现在显示为文本。 ://
  • 区别正是我上面所说的:在其中一个中,文本是"Hello&lt;br&gt;World. I'm trying also to write &lt;something&gt; inside greater than and lower than signs."(那是坏掉的那个)。正确的是 "Hello&lt;br&gt;World. I'm trying also to write &amp;lt;something&amp;gt; inside greater than and lower than signs." 在这里,我将发布一个使用对象初始化器而不是 JSON 的版本(因为它现在是 jsbin 上损坏的 JSON 位)。我们在这里:jsbin.com/owocuf/3 (source) 我清空了中间的 div 以使其更清晰。
  • 是的,这对我有用。我理解了这个例子。谢谢耐心。 :-)
猜你喜欢
  • 2020-05-01
  • 2019-04-24
  • 1970-01-01
  • 2017-10-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多