如何将带有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<\/a>","time":"2015-12-16 15:51:33.0"]
请注意
<\/a>
谁能给我一些提示,如何在包含从数据库中获取的数据的 jsonArray 中正确格式化 html 标签?
谢谢!
【问题讨论】:
您要转义 HTML 吗? @Jia Jian - 我希望在没有转义的情况下显示结束 。我不知道我需要做什么才能在 jsonObject 显示 而不是 中显示“消息”值 首先转义您的起始<a>
标签,因为它会弄乱您的 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中的主要内容,如果未能解决你的问题,请参考以下文章