JSON 格式化与校验 - 美化、压缩及检查 JSON
粘贴原始 JSON,使用偏好的缩进将其美化,为生产环境压缩,或通过精确的错误位置进行校验。
格式化器使用浏览器原生 JSON 引擎解析文本,因此这里通过的内容正是 JSON.parse 接受的内容。所有操作都在本地运行,不会上传任何数据。
JSON 格式化与校验 - 美化、压缩及检查 JSON
粘贴原始 JSON,使用偏好的缩进将其美化,为生产环境压缩,或通过精确的错误位置进行校验。
隐私:你的数据不会离开浏览器。解析、格式化和校验全部在你的设备上完成。
工作原理:使用 JSON.parse 解析输入,再用你选择的缩进通过 JSON.stringify 重新序列化(压缩时不使用缩进)。
关于 JSON 格式化与校验工具
JSON(JavaScript 对象表示法)是现代 API、配置文件、日志管道和数据交换的通用语言。机器生成它很容易,但人类阅读往往很痛苦:API 响应通常是一行数千字符的压缩文本,而手动编辑的配置文件可能因为少了一个逗号就无法加载。这个 JSON 格式化器在一个地方解决了这两个问题——将紧凑 JSON 美化为带缩进、易读的结构,将漂亮的 JSON 压缩回尽可能小的形式,并通过精确的行列位置检查输入中的语法错误。
本工具有意采用浏览器原生 JSON 引擎,而不是自定义解析器。点击“格式化”“压缩”或“校验”时,你的文本会经过 JSON.parse,也就是 JavaScript 代码在运行时使用的同一实现。因此校验结果具有权威性:如果这里能解析,它就能在 Node.js 和所有现代浏览器中解析;如果这里失败,你会看到引擎自身的错误消息,并被转换为行号和列号,可以直接跳到问题位置。常见原因包括末尾逗号、使用单引号而非双引号、未加引号的属性名、注释(标准 JSON 不允许)以及从终端复制时带入的多余控制字符。
格式化选项涵盖真实项目中常用的样式:两个空格缩进(大多数 JavaScript 生态的默认值)、四个空格或制表符。可选的键排序会递归地重写每个对象,按字母顺序排列属性;当你需要比较两个负载或让配置文件保持规范顺序时非常有用——请注意,它只改变键的顺序,从不改变值,而 JSON 语义并不依赖键顺序。操作成功后,工具还会显示快速统计信息:顶层键的数量(或数组元素数量)以及结果的精确字节大小;当你关注负载预算或请求体大小限制时很方便。
压缩是美化的反向操作:删除所有无意义的空白,生成最紧凑的等价文档。将 JSON 嵌入环境变量、查询字符串或对带宽敏感的 API 请求前,可以先使用它。
所有操作都在浏览器标签页本地完成。你粘贴的文本不会传输到服务器、不会存储或记录,因此适合处理令牌、客户记录或内部配置等私密负载。需要了解的限制是:超大文档(数百 MB)会受浏览器内存限制;扩展 JSON 的格式——JSON5、带注释的 JSONC 或 NDJSON 流——必须先转换为严格 JSON,才能通过校验。
JSON 格式化器示例
典型输入及每个操作的结果。
| 输入 | 操作与输出 | 说明 |
|---|---|---|
| {"name":"Ada","tags":["math","code"]} | 格式化 → 使用所选缩进分成多行并缩进 | 非常适合阅读压缩的 API 响应。 |
| 一份 40 行的漂亮格式配置文件 | 压缩 → 删除所有空白,合并为一行 | 最小的等价文档,非常适合环境变量和请求体。 |
| {"id": 1, "name": "Ada",} | 校验 → 第 1 行出错:不允许使用末尾逗号 | 严格 JSON 禁止末尾逗号、注释和单引号。 |
| {"z":1,"m":2,"b":3}(已启用键排序) | 格式化 → 每一层的键重新排列为 b、m、z | 排序后的键能让两个负载之间的差异保持稳定。 |
如何格式化和校验 JSON
- 将 JSON 粘贴到输入框——可以是压缩的 API 响应、配置文件或手写片段。
- 选择所需缩进(2 个空格、4 个空格或制表符),也可以启用按字母顺序排列键。
- 点击“格式化”获得漂亮输出,点击“压缩”获得紧凑形式,或点击“校验”仅检查语法。
- 如果解析失败,请阅读错误消息,跳到报告的行号和列号修复问题。
- 从结果面板复制输出;显示的字节大小有助于跟踪负载限制。
JSON 格式化器常见问题
为什么我的 JSON 校验失败?
最常见的原因是末尾逗号、字符串或键使用单引号、未加引号的属性名、注释以及未转义的控制字符。严格 JSON 不允许这些内容。错误消息会包含解析器停止的位置,即出错字符所在处或紧随其后的位置的行号和列号。
在这里粘贴敏感数据安全吗?
安全。格式化器完全在浏览器中使用原生 JSON 引擎运行——你粘贴的内容不会通过网络发送、存储或记录。加载页面后即使断开网络,它仍会继续工作。
压缩会改变我的数据吗?
不会。压缩只删除标记之间无意义的空白;每个值、字符串和数字在语义上都保持完全一致。解析压缩后的输出会得到与原文完全相同的数据结构。
“排列键”选项有什么作用?
它会递归地重写每个对象,使所有嵌套深度的属性都按字母顺序出现。值和数组不会改变。由于 JSON 对象的键顺序没有语义,排序是为比较差异和版本控制生成规范输出的安全方式。
键数量和字节大小是什么意思?
键数量是顶层对象属性的数量(如果根元素是数组,则为元素数量)。字节大小是结果经过 UTF-8 编码后的长度,这才是 HTTP 负载限制关心的值,而不是字符数。
可以格式化 JSON5 或带注释的文件吗?
不能直接格式化。本工具根据 RFC 8259 校验严格 JSON,注释或 JSON5 中未加引号的键等便利写法都会被报告为错误。请先删除注释或将文件转换为严格 JSON,再在这里格式化。