JSON 在线格式化工具 - 免费支持 JSON 压缩、Diff 对比、转 YAML / Go 结构体

免费在线 JSON 工具,支持 JSON 格式化压缩转义 / 去除转义排序JSON 转 YAML / TOML / XML / Go 结构体, 以及 Diff 对比脱敏存档等功能。 核心处理均在浏览器本地完成(获取 JSON 和分享功能除外)。

强大的格式化兼容性 —— 比 JSON5 更宽容

为什么很多 JSON 在别处报错,在这里却能正常格式化?因为本工具的解析器在 JSON5 基础上做了大量增强,且对数字精度、字符编码、数组排版、缩进风格都有专门处理,把"看上去脏脏的 JSON"变成可读结构化数据。

JSON5 是 ES5 之后社区为补足 JSON 易用性提出的扩展规范,允许 key 不加引号、单引号字符串、尾随逗号、Infinity / NaN 等特性,但仍然不被所有解析器接受。本工具在内置 JSON5 解析器之上又叠加了 # 注释、自动数字精度保护、Unicode 全保真等扩展,是当前主流 JSON 工具中最宽容的解析器之一。

  • 完整支持 JSON5 标准吞下常见的"伪 JSON",一键变合法 JSON。
    • key 可不加引号
    • 字符串可用单引号
    • 数组/对象允许尾随逗号
    • 支持 Infinity / NaN 等特殊值
  • 三种注释,比 JSON5 还宽容不仅兼容 JSON5,还扩展支持 # 注释。
    • // 单行注释
    • /* 多行注释 */
    • # 单行注释(JSON5 标准并不支持,本工具扩展)
  • 数字无损保护默认强制开启数字字面量保护,永不丢精度。
    • 超出 Number.MAX_SAFE_INTEGER 的大整数(雪花 ID / 订单号)原样输出
    • 末尾零的浮点数(1.10)不会被吞成 1.1
    • 指数形态(1e10)格式化前后一字不差
  • 数组排版设置中可切换「数组样式:换行 / 紧凑」。
    • 紧凑模式:仅对简单类型数组(string / number / bool / null)生效
    • 复杂对象数组:自动保持换行,避免一行几百字段挤成一团
  • 缩进可控不破坏原来代码的缩进风格。
    • 缩进空格 2 / 4 / 8 三档可选
    • 编辑区域粘贴时自动检测原始 JSON 的缩进风格并智能切换显示
  • 字符编码可解可还原排查"前端拿到一堆 \u4e2d\u6587"的利器。
    • 开启解码:自动还原 \uXXXX、\xHH
    • 关闭解码:原样保留转义序列,方便对比原始报文

高效使用技巧

本工具针对 JSON 数据的浏览、编辑、调试场景做了大量隐藏优化,掌握下面这些技巧可以让你的处理效率成倍提升。

🚦 JSON 错误精准定位

在「设置」中开启「语法校验」后,错误处会显示红色波浪线作为视觉提示。

搭配编辑区域右下角状态栏的「错误定位」按钮,可以一键跳转到错误位置 —— 处理那些"扫一眼也看不出哪里出错"的复杂 JSON、或者动辄上万行无法格式化的脏数据时尤其救命,把"找错误"这个最枯燥的环节压缩到一次点击。

📊 状态栏动态信息

编辑区域与预览区域底部各有独立状态栏,随光标和选区状态智能切换:

  • 光标 / 选区基础信息:行列号、总行数、选中行数与字符数。
  • 全文匹配统计:选中文本若在文档中有多处副本,自动追加「共 N 处匹配」,无需打开搜索框。
  • 全选时显示文件大小:按 UTF-8 字节计算(中文 3B、emoji 4B),免开外部工具量体积。
  • Diff 模式左右两侧独立刷新。

🗂️ 折叠摘要预估规模

在预览区域中折叠任意 JSON 节点时,折叠行末尾会自动显示当前节点的规模摘要:

  • 对象折叠后显示「N keys」,即该对象包含 N 个键
  • 数组折叠后显示「N items」,即该数组包含 N 个元素
  • 完全不需要展开就能看清每个对象 / 数组的规模 —— 在面对几万行的大型嵌套 JSON 时,配合 Monaco 的缩进引导线,可以自顶向下快速建立对整份 JSON 的结构认知,这是浏览大型 JSON 最高效的探索方式。

🎯 AST 智能选中 · 一键 Base64 / URL 编解码

编辑区域与预览区域的双击行为均基于 AST 语法树识别,跨引号、跨转义都能精准选中整段字符串边界,与传统的"双词选中"完全不同。

  • 编辑区域双击字符串:仅选中,不复制(方便修改)
  • 预览区域双击字符串:选中并自动复制到剪贴板(方便取值)
  • 选中文本后右键菜单:可对选中内容进行 Base64 编码 / 解码、URL 编码 / 解码,原地替换 —— 处理 token、签名、URL 参数等场景无需切换其他工具。
  • 对比(Diff)模式同样支持:左右编辑器都可以双击智能选中字符串、右键菜单一键编解码,排查接口前后差异时无需切回普通模式。

🔄 一键内容转移(保留折叠状态)

在编辑区域与预览区域中间的可拖动分割线上方,有一个带箭头图标的方块按钮(指向编辑区域)。点击后,会把预览区域的处理结果一键转移到编辑区域。

不仅数据会被完整转移,预览区域里已折叠的层级状态也会同步保留 —— 方便你在处理大型复杂 JSON 时持续聚焦正在分析的层级关系,避免每次格式化后都被全部展开、打乱思路。

📐 双击面板头:50% / 100% 占比切换

双击编辑区域或预览区域上方的标题栏,可在「左右各 50%」与「单边 100% 全宽」之间切换。处理超长行 JSON 或字段密集的 JSON 时尤其顺手。

📋 多格式自动折叠

编辑区域不仅识别 JSON,输入 YAML / TOML / XML / CSS / HTML 等结构化文本时,也会按缩进或标签自动提供折叠功能 —— 把它当作通用的结构化文本查看器也很顺手。

⌨️ 完整 Monaco 快捷键

全套 VS Code 同款快捷键,老开发者上手零成本。

操作Windows / LinuxmacOS
撤销Ctrl+ZCmd+Z
查找Ctrl+FCmd+F
跳转到指定行号Ctrl+GCtrl+G
行内 / 块注释Ctrl+/Cmd+/
行上移 / 下移Alt+ / Alt+Option+ / Option+
多行光标编辑Ctrl+Alt+ / Ctrl+Alt+Cmd+Option+ / Cmd+Option+
跳转到文档开头 / 结尾Ctrl+Home / Ctrl+EndCmd+ / Cmd+

常见问题

我的 JSON 数据会被上传到服务器吗?

默认不会。JSON 的解析、格式化、压缩、转义 / 去除转义、排序、Diff 对比、脱敏,以及 YAML / TOML / XML / Go 结构体的转换,全部在你的浏览器本地完成。只有当你主动使用「分享」或「获取 JSON」功能时,才会与服务器交互。

「分享」功能是怎么处理我的数据的?

点击「生成分享链接」后,工具会把 JSON 数据上传到服务器以生成可访问的短链接,并设置自动过期时间。请勿分享包含敏感信息的数据,如有需要可先使用「脱敏」功能再分享。

「获取 JSON」功能会经过你们的服务器吗?

会。由于浏览器同源策略限制,请求会经过本站服务器代理转发到目标 URL,本站不会持久化你的请求或响应内容。

这个工具对 JSON 体积有什么限制?

本工具针对大文件做了深度优化,并按行数划分四档运行模式,确保浏览器在不同体量下都能保持流畅:

行数范围运行模式功能说明备注
≤ 100 万行正常模式全部功能可用设置按用户选择生效
100 ~ 300 万行受限模式仅层级收缩不可用其他功能正常
300 ~ 500 万行仅展示模式只可查看和滚动语法检测、粘性滚动两项设置被强制关闭
> 500 万行超限自动清空内容编辑区与预览区都会清空

实测可在 3 秒内完成 200 万行、15 层嵌套 JSON 的格式化与层级收缩,背后由虚拟滚动、按需折叠、Worker 解析等多项优化保障。

JSON 转 Go 结构体的字段命名规则是什么?

遵循 Go 官方 Lint 的 CommonInitialisms 白名单规则:ID、URL、API、HTML 等常见缩写会全大写(如 userID → UserID),其他片段采用标准驼峰式命名。

这个工具是免费的吗?

完全免费。无需注册、无需登录、无广告弹窗,开箱即用。