【发布时间】:2015-03-28 18:54:56
【问题描述】:
我想知道如何在 JSON 中转义 HTML 代码?我使用 Jackson 作为我的 JSON 映射器。
在我的内容中,我有各种字符:标签、单引号、双引号、换行符 (\n)、制表符等。我尝试使用 CharacterEscapes 类,但没有结果。
使用 CharacterEscapes 后,我的 JSON 响应崩溃了。我试图手动转义它,但也没有任何结果。
所以问题是,假设我们有:
<p>Some text</p>\n<p>"SomeText"</p>
如何将它作为 JSON 对象的值发送回浏览器?
更新: 输入是:
{
"code": {
"num": 12
},
"obj": {
"label": "somelabel",
"order": 1
},
"det": {
"part": "1",
"cont": true
},
"html": "<p>Mine text</p>"
}
输出:
{
"code": {
"num": 12
},
"obj": {
"label": "somelabel",
"order": 1
},
"det": {
"part":"1",
"cont": true
},
"html":{"code": {
"num": 12
},
"obj": {
"label": "somelabel",
"order": 1
},
"det": {
"part":"
}
【问题讨论】:
-
这有帮助吗? cowtowncoder.com/blog/archives/2012/08/entry_476.html 尽管除了 \b、\f、\n、\r、\t、\" 和 \\ 之外,您可能不需要转义任何内容。请考虑这个 stackoverflow.com/questions/3020094/… 和这个 stackoverflow.com/questions/19176024/… 。希望这会有所帮助。
-
我看过那篇文章,我有类似的代码,但没有帮助。顺便提一句。我刚刚看到我的示例中没有显示一些标签。我将更新示例文本。
-
我不明白这个问题。 HTML 只是文本。您可能将其存储为
String。 Jackson 可以在String中转义任何必要的字符。 -
@SotiriosDelimanolis 我正在发送响应:mapper.writeValue(response.getWriter(), myObjectWithHtmlProperty) 在浏览器中我看到 json,它看起来像这样:{"key":"value" , "key":"value", "myHtmlKey":{"key":"value", "key":"value"} HTML 代码从头替换为 JSON 对象
-
我还是不明白。请发布一个完整且可重复的示例。输入是什么?输出是什么?预期的输出是什么?为什么?
标签: java json jackson html-escape-characters