【问题标题】:Jsp, Jquery and Json encoded characters issueJsp、Jquery 和 Json 编码字符问题
【发布时间】:2011-01-04 04:16:18
【问题描述】:

使用 JSON 对我来说是全新的体验,但我已经喜欢上了它。但我面临一个恼人的问题。 事情是这样的: jquery 对特定 url 发出 Ajax 请求, 这个 url 是一个 STRUTS 动作,成功时返回一个特定的 jsp 此 jsp 包含 JSON taglib (http://www.atg.com/taglibs/json) 以呈现正确的 JSON 格式。

塑造客户端和服务器之间的通信给了我这个: alt text http://www.freeimagehosting.net/uploads/e4a91d6251.jpg

如您所见,http 标头看起来不错,但我的 JSON 包含十六进制。字符,例如'

问题是,我使用部分 JSON 答案来使用 Jquery 输出 html;每次发出 ajax 请求时,我都面临着动态创建工具提示的问题。

也许我的 javascript 代码不能很好地处理 JSON 输入,所以这里有一些我的代码来处理这个 JSON 答案:

var toolTip = $("<span/>").addClass("tooltip").text(article.description).hide().appendTo(rowDescriptionArticle);

如您所见,我基本上检索每个文章节点的描述,并使用 text() 将其插入到我的跨度中。

知道出了什么问题吗?

【问题讨论】:

    标签: jquery ajax json content-type html-encode


    【解决方案1】:

    包含 HTML 实体的 JSON 没有任何异常 — 如果这是浏览器要显示的字符串的一部分,那么听起来不错。

    根据您发布的 jQuery sn-p 和 JSON 示例,在我不使用 jQuery 的意见中,您应该将 span 的 html() 而不是 text() 设置为您的 @987654323 @ 字段已经是 HTML 编码的。

    【讨论】:

      【解决方案2】:

      这是我的 JSON 的样子:

      {"totalPanier":"0,00","articles":[{"id":"8a8b8d632481567f01248156fac90009","reference":"CART01","prixAffiche":"0,00","quantite":"0","libelle":"Carte CADEAUX Ã  montant variable","montantRemise":"","prixTotal":"00,00","visuel":"/documentsArticles/2009/14131/0005/209141310005_dim1.jpg","description":"Carte Cadeaux d&#039;une valeur de 15 Ã  150 euros."},{"id":"8a8b8d632481567f0124815706910010","reference":"CART80","prixAffiche":"80,00","quantite":"0","libelle":"Carte CADEAUX 80 Euros","montantRemise":"","prixTotal":"00,00","visuel":"/documentsArticles/2009/14131/0004/209141310004_dim1.jpg","description":"Carte Cadeaux d&#039;une valeur de 80 Euros."},{"id":"8a8b8d632481567f012481570578000f","reference":"CART50","prixAffiche":"50,00","quantite":"0","libelle":"Carte CADEAUX 50 Euros","montantRemise":"","prixTotal":"00,00","visuel":"/documentsArticles/2009/14131/0003/209141310003_dim1.jpg","description":"Carte Cadeaux d&#039;une valeur de 50 Euros."},{"id":"8a8b8d632481567f012481570549000e","reference":"CART30","prixAffiche":"30,00","quantite":"0","libelle":"Carte CADEAUX 30 Euros","montantRemise":"","prixTotal":"00,00","visuel":"/documentsArticles/2009/14131/0002/209141310002_dim1.jpg","description":"Carte Cadeaux d&#039;une valeur de 30 Euros."},{"id":"8a8b8d632481567f012481570364000d","reference":"CART15","prixAffiche":"15,00","quantite":"0","libelle":"Carte CADEAUX 15 Euros","montantRemise":"","prixTotal":"00,00","visuel":"/documentsArticles/2009/14131/0001/209141310001_dim1.jpg","description":"Carte Cadeaux d&#039;une valeur de 15 euros."}]}
      

      抱歉,格式丢失了,但我相信你能稍微解码一下...

      【讨论】:

      • 通常您应该在顶部编辑您的问题以添加这样的数据(就像您已经使用 jQuery sn-p 一样)。因此,如果您愿意,可以删除您的这个答案。我已经根据新信息更新了我的答案:)
      猜你喜欢
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多