如何将带有html元素的jsonArray输出到JSP中

Posted

技术标签:

【中文标题】如何将带有html元素的jsonArray输出到JSP中【英文标题】:How to output jsonArray with html elements into JSP 【发布时间】:2016-03-23 08:54:30 【问题描述】:

首先,请允许我说,我认识到将 html 保存在 mysql 数据库中并不理想。但这就是它的设置方式,我只需要接受它并使用现有设置。

这是我的问题。

我有一个包含“消息”和“时间”列的“消息”表。

这些是一些示例值,仅用于演示目的:

MySQL: “消息”栏:

You've received an appraisal from xyz re something in the amount of $1,2000.<br><a class='lnk' href='http://www.website.com/somepage.jsp?r=393'>View some page</a>

“时间”栏:

2015-12-16 15:51:33.0

我可以检索 java 类中的值并将结果集数据转换为 jsonArray。

如果我 sysout jsonArray,我可以看到表中的值或多或少正确显示。

System.out.println("jsonArray: " + jsonArray);

输出:

 jsonArray: ["message":"You've received a message from xyz re something in the amount of $1,200.<br><a class='lnk' href='http://www.website.com/somepage.jsp?r=393'>View some page<\/a>","time":"2015-12-16 15:51:33.0"]

我正在努力解决两个问题:

1) 返回html标签而不在输出中转义

请注意上面 jsonArray 中转义的结束标记:。有没有办法在不转义的情况下找回它?

2) 以正确格式和转义返回 jsp 中的 jsonArray。

我希望 JSP 返回 jsonArray,但我没有太多运气让事情正常工作 更具体地说,我尝试了以下两种在我的jsp页面上输出jsonArray:

out.print(jsonArray);

out.println(jsonArray.toString());

但在这两种情况下,转义的结束标签似乎都会引起问题。 jsp 输出如下所示:

这是在jsp中生成的代码。

["message":"You've received an appraisal from xyz re something in the amount of $1,2000.<br><a class="lnk" href="http://www.website.com/somepage.jsp?r=393">View some page&lt;\/a&gt;","time":"2015-12-16 15:51:33.0"]

请注意

   &lt;\/a&gt;

谁能给我一些提示,如何在包含从数据库中获取的数据的 jsonArray 中正确格式化 html 标签?

谢谢!

【问题讨论】:

您要转义 HTML 吗? @Jia Jian - 我希望在没有转义的情况下显示结束 。我不知道我需要做什么才能在 jsonObject 显示 而不是 中显示“消息”值 首先转义您的起始 &lt;a&gt; 标签,因为它会弄乱您的 JSON 并使其无效(使用 JSONLint 进行检查)。有什么不逃避的具体原因吗?您的 JSON 响应似乎返回 text/html 而不是 application/json,这是有意的吗? @Jia Jian - 感谢您的提示。设置 response.setContentType("application/json") & response.setCharacterEncoding("utf-8") 让我走上了正轨。请发表您的评论作为答案。谢谢! 作为答案发布! 【参考方案1】:

把它变成一个答案。

将您的响应类型设置为 application/json 而不是 text/html 应该可以解决问题。

【讨论】:

以上是关于如何将带有html元素的jsonArray输出到JSP中的主要内容,如果未能解决你的问题,请参考以下文章

获取jsonarray下每个元素的KEYS数组

如何从 JSONArray 中删除特定元素?

JSONArray

如何将带有 JSON OBJECT 数据的 JSON ARRAY 发布到服务器?

如何将JSonArray发送到弹簧控制器

将 JsonArray 添加到 JsonObject