tomai
免费 · 开发者工具

JSON 格式化

格式化、校验、压缩、键排序 —— 100% 浏览器本地处理

输入
输出

值得了解的技术细节

JSON 由 RFC 8259 定义,规范里有三个角落最常咬人:

  • 数字是 IEEE-754 双精度浮点——超过 2⁵³ 的整数(如 9007199254740993)在任何基于 JavaScript 的解析器里都会悄悄丢失精度,这就是 API 里的长 ID 常以字符串形式出现的原因。
  • 重复键并不被规范禁止;解析器普遍保留最后一个,本格式化器行为相同。
  • 校验报告第一个语法错误的精确行列号后即停止——修掉再跑,有错会继续报下一个。

什么是 JSON 格式化工具?

JSON 格式化器把 raw JSON——常是从 API 响应、配置文件或日志流复制来的一整行——重排为人可扫描的缩进结构。本工具支持可选缩进格式化、压回紧凑单行、只校验不动文本、可选递归排序对象键,并每次报告字节大小、总键数和嵌套深度。因为解析、打印和统计全在浏览器内执行,生产负载和带秘密的配置可以放心粘贴,不会发往服务器。

从单行 API 汤到可读结构

  • 2 格、4 格或 Tab 缩进美化,或压到最紧的合法单行
  • 只校验模式:检查语法,文本一字不动
  • 递归键排序:打印前把每层嵌套对象按字母排序
  • 错误报告带解析器消息和失败的确切行列号
  • 运行后统计字节大小、键总数和最大深度,支持复制和 JSON 文件下载

它回本的调试时刻

  • 对照字段写客户端代码前,先读懂嵌套 API 响应
  • 整理臃肿配置文件,再把负载压小以塞进限大小请求
  • 审计日志里抠出的结构,几百行里藏一个缺逗号

大负载和重复键惊喜

解析遵循严格 JSON,尾逗号、注释和单引号字符串会被拒绝。重复对象键按 JSON 标准保留最后一个值,这会让期待报错的人意外;很深或很大的文档统计要遍历整棵树,可能需要一点时间。空框直接拒绝,因为无物可验。

隐私:粘贴的任何东西都不离开浏览器标签页;格式化和校验严格本地,敏感负载留在你放它的地方。

最后更新 · 2026-09-01

📚 常见 JSON 错误与修复对照表

几乎所有 JSON 解析失败都逃不出下面八种。对照表格,沿着格式化器高亮的行修复即可。

报错原因修复
Unexpected token <拿到的是 HTML 不是 JSON检查接口地址;你在解析一个错误页
Unexpected end of input缺右括号/中括号顺着格式化器的缩进参考线找未闭合的块
Unexpected string元素之间缺逗号在校验器提示的位置补逗号
Unexpected token ' 用了单引号JSON 必须双引号——全部替换
Unexpected token ,} 或 ] 前有尾逗号删掉最后一个逗号
Unexpected number前导零(007)或十六进制(0x1F)改成字符串或去掉前缀
重复键同一个键出现两次——后者静默覆盖重命名其一;重复键合法但危险
看不见的垃圾字符BOM 或复制粘贴带入的空白从纯文本源重新粘贴

再补两个冷知识:JSON 没有注释语法(JSONC 扩展加了——VS Code 配置用的就是它);数字不能有前导零和十六进制形式。本页全部在浏览器本地运行——不确定 JSON 是不是正确格式?读格式对比

最后更新 · 2026-09-01

为什么用它而不是编辑器插件

🧭

格式化、排序与统计

将原始 JSON 以两空格、四空格或 Tab 缩进美化,可开启深层键排序,每次处理后状态栏直接显示字节数、键数量与嵌套深度。

🎯

错误精确到行列位置

校验会报告首个语法错误所在的行与列,嵌套对象深处漏掉的逗号也会直接指出修复位置,而不是只给一个笼统的解析失败提示。

📦

压缩、复制或下载

压缩模式把同一份文档折叠为单行便于传输,随后可一键复制,或另存为 formatted.json 文件。

常见问题

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

不会。格式化、校验和压缩全部由浏览器内的 JavaScript 完成,数据从不离开你的设备,处理 API 密钥、客户数据等敏感内容也安全。

怎么快速定位 JSON 语法错误?

点击"校验"或"格式化",如果 JSON 不合法,会显示解析器错误信息以及第一处错误的精确行列位置。最常见的错误是多余的逗号、单引号和没加引号的键名。

"键排序"有什么用?

它会递归地把每个对象的键按字母序排列后输出。排序后的 JSON 在代码评审中更容易对比差异,也能为缓存和哈希产生稳定输出。

为什么一串长 ID 格式化后末几位变了?

变的不是"格式化"这一步——是文本被解析成 JavaScript 数字的那一刻。超过 2⁵³ ≈ 9×10¹⁵ 的整数超出双精度尾数范围,末位会被舍入。请在 JSON 里把这类值加引号作为字符串保存。

相关工具

相关工具