Jsp,Jquery和Json编码的字符问题

时间:2010-01-12 13:00:42

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

使用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()将其插入到我的范围内。

知道出了什么问题吗?

2 个答案:

答案 0 :(得分:1)

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

基于您发布的jQuery代码段和JSON示例,看起来 - 在我的非jQuery使用意见中 - 您应该设置范围的html()而不是text()作为您的description字段已经过HTML编码。

答案 1 :(得分:0)

这是我的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."}]}

很抱歉没有格式化,但我相信你能解码一下......