json 就是纯文本数据格式,与 html 完全无关;浏览器中看到的“美化”效果是 js 动态生成的 dom,原始响应仍是 application/json 类型的标准 json。

HTML 中没有所谓“HTML JSON 格式”——JSON 就是 JSON,它和 HTML 是两种完全独立的数据格式;所谓“HTML JSON 工具”,实际只是把 JSON 字符串嵌在 HTML 页面里展示,或用 HTML 渲染 JSON 结构,本质仍是纯 JSON 数据。
为什么浏览器里看到的 JSON 像 HTML 页面?
你打开一个 .json 文件,浏览器可能直接渲染成带折叠/高亮的树状结构(如 Chrome 120+ 默认行为),但这不是 HTML 格式,而是浏览器内置的 JSON 查看器用 HTML + CSS + JS 动态生成的可视化界面。原始响应体仍是标准 JSON,Content-Type 仍是 application/json。
- 真实传输的永远是纯文本 JSON(例如:
{"name":"Alice","age":30}) - 浏览器“美化”它,是前端 JS 解析后,用
<div>、<code><span></span>等标签动态构建 DOM,和 HTML 源码无关 - 如果你禁用 JS 或用
curl请求,看到的就是原始未格式化 JSON -
jq:命令行下运行cat data.json | jq '.'→ 输出带缩进的 JSON,类型仍是application/json -
prettier --parser json:把紧凑 JSON({"a":1,"b":[2]})转为多行格式,不加<pre class="brush:php;toolbar:false;"></pre>或 class - 常见错误:把 JSON 美化结果直接塞进
<script></script>标签却不加type="application/json",导致浏览器尝试执行——这是解析错误,不是格式问题 - 错误示例:后端用字符串拼接生成 JSON:
"{"msg":"<script>alert(1)</script>"}"→ 前端innerHTML渲染就执行脚本 - 正确做法:始终用语言原生 JSON 编码(如 Python
json.dumps()、Node.jsJSON.stringify()),它们自动转义为 <code>\u003c - 浏览器控制台报错
Unexpected token ,大概率是服务器返回了 HTML 错误页(如 404),而非 JSON
JSON 美化工具(如 jq、prettier、在线 formatter)到底在做什么?
它们只做一件事:对合法 JSON 字符串进行缩进、换行、空格调整,不引入任何 HTML 标签或属性。输出仍是 JSON,只是可读性更强。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
什么时候会真混入 HTML?危险信号有哪些?
只有当你手动拼接、服务端模板渲染、或使用不安全的 JSON 库时,才可能意外掺入 HTML 片段。这不是美化工具的问题,而是数据污染。
真正要盯紧的,从来不是“JSON 是否够 HTML”,而是“数据是否干净、传输是否准确、解析是否严格”。工具再 fancy,也救不了被 eval() 解析的用户输入。










