You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从JSON中输出精确的HTML标签?附示例数据

如何从JSON数据中输出精确的HTML标签?

这问题我天天碰——JSON里存的HTML标签都被转义成实体了(比如&lt;代替<),直接输出只会显示源码,不会渲染成真正的HTML元素。下面分几种常用场景给你靠谱的解决方案:

前端JavaScript场景

浏览器本身就具备解析HTML实体的能力,最直接的方式就是利用DOM的innerHTML属性:

// 你的JSON数据
const jsonData = [{ 
  "Field1": "&lt;header class=\"main-header dark-bg\"&gt;\n\t\t&lt;div class=\"row\"&gt;\n\t\t\t&lt;div class=\"col-xl-3\"&gt;\n&lt;a class=\"icons-darkbg-slogan main-header__slogan\" data-event_engagement=\"\" data-event_linktype=\"internal page link\" data-event_source=\"DAM|active|de|de|/\" data-event_target=\"/\" data-event_title=\"Header Home::Slogan\" href=\"/\" target=\"_self\" title=\"DWS Homepage\"&gt;&lt;img src=\"/globalassets/images/logos/dws_logo_global...." 
}];

// 提取转义后的HTML字符串
const escapedHtml = jsonData[0].Field1;

// 找到要插入的目标DOM元素(比如id为header-container的元素)
const targetContainer = document.getElementById('header-container');

// 直接赋值给innerHTML,浏览器会自动解码实体并渲染HTML
targetContainer.innerHTML = escapedHtml;

如果是在Node.js环境(比如后端渲染),可以用he库来解码实体:

npm install he
const he = require('he');
const unescapedHtml = he.decode(escapedHtml);
// 之后就可以把unescapedHtml插入到模板中

后端Python场景

Python标准库的html模块自带了解码HTML实体的方法,非常方便:

import html
import json

# 加载你的JSON数据(这里假设已经读取完成)
json_data = [{"Field1": "&lt;header class=\"main-header dark-bg\"&gt;\n\t\t&lt;div class=\"row\"&gt;\n\t\t\t&lt;div class=\"col-xl-3\"&gt;\n&lt;a class=\"icons-darkbg-slogan main-header__slogan\" data-event_engagement=\"\" data-event_linktype=\"internal page link\" data-event_source=\"DAM|active|de|de|/\" data-event_target=\"/\" data-event_title=\"Header Home::Slogan\" href=\"/\" target=\"_self\" title=\"DWS Homepage\"&gt;&lt;img src=\"/globalassets/images/logos/dws_logo_global...." }]

# 解码HTML实体
unescaped_html = html.unescape(json_data[0]['Field1'])

# 之后可以将这个字符串插入到HTML模板,或者直接写入响应输出
print(unescaped_html)

重要注意事项

  • 安全风险:如果你的JSON数据来自不可信来源(比如用户输入),直接输出解码后的HTML会有XSS攻击风险。前端可以用DOMPurify过滤危险标签,后端可以用bleach库做同样的处理。
  • 换行处理:JSON里的\n解码后会变成文本换行,要是想在页面上显示换行效果,可以把\n替换成<br>标签,或者给容器元素添加CSS样式white-space: pre-line。

内容的提问来源于stack exchange,提问作者Zabiullah V M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:21:20