跳到正文

JSON 格式化与校验

美化、压缩和校验 JSON,精确定位错误位置,给出修复提示,并提供可折叠的树状视图;数据在浏览器中处理,不会上传。

格式化后的 JSON 会显示在这里。
在浏览器中运行 · 无需上传工作原理

JSON 格式化与校验 使用方法

  1. 1

    粘贴或打开 JSON

    粘贴到左侧输入框,把 .json 文件拖进去,或使用“打开文件”。点击“示例”可以快速了解用法。

  2. 2

    选择排版方式

    选择 2 个空格、4 个空格或制表符;需要固定顺序时开启“按 A–Z 排序键”,然后点击“格式化 JSON”或“压缩”。

  3. 3

    修正错误

    JSON 无效时,查看行号、列号和提示,用“跳转到行”定位到出错位置,或点击“修复 JSON”。

  4. 4

    复制、下载或浏览

    复制结果,下载为 .json 文件,或打开“树形”标签页折叠节点并复制 JSONPath。

限制与 Pro

免费使用,无需注册:可打开最大 50 MB 的文件。超过 200,000 个字符的输入会在后台线程中处理,超过 2 MB 的文件会在不载入编辑器的情况下格式化,树形视图支持最大 2 MB 的文档。

Pro 可去除广告;格式化工具的限制在所有套餐中相同。 了解 Pro

关于 JSON 格式化与校验

粘贴 API 响应、配置文件或一行日志,格式化工具会按 JSON 标准(RFC 8259)进行校验,然后以两个空格、四个空格或制表符缩进输出,也可以压缩成单行。键可以按字母顺序排序,方便对比同一文档的两个版本。

JSON 有误时,你会看到行号和列号、对期望内容的通俗说明、指向出错位置的插入符,以及可能的修复方式:上一行末尾缺少逗号、多余的尾随逗号、单引号、未加引号的属性名、注释、Python 的 True 或 None、NaN、字符串中的原始换行,或未闭合的括号。点击“修复 JSON”可一次性修正这些接近 JSON 的写法,并列出每一处改动,方便你检查或撤销。

数字和转义序列会原样保留,所以像 12345678901234567890 这样的 ID 不会像 JSON.parse 那样被四舍五入。树形视图可以折叠对象和数组,显示每个节点包含的键或元素数量,并复制任意节点的 JSONPath 或值。

大文件在后台线程中处理,格式化 50 MB 的导出数据时页面依然流畅。本工具不支持按 JSON Schema 校验、转换为 YAML 或 CSV,也不能用 JSONPath 表达式查询数据。

隐私

解析、格式化和修复都在当前浏览器标签页中完成,你粘贴或打开的 JSON 不会上传,也不会发送给任何服务。只有缩进和键排序的选择会保存在本地存储中,关闭页面后文档本身不会保留。

功能

能直接照着改的错误提示

给出行号、列号、指向问题处的插入符和修复建议,而不是一句“Unexpected token”。

一键修复

把带注释、尾随逗号、单引号或未加引号键名的 JSON 转为严格的 JSON。

可折叠的树形视图

折叠任意对象或数组,并复制节点的 JSONPath 或值。

JSON 格式化与校验:常见问题

为什么看起来没问题的一行会提示“Expected a comma”?
解析器要读到下一个属性时才发现问题,所以错误指向那一行的开头。逗号通常漏在上一行末尾、前一个值的后面,提示中会指出具体的行。点击“跳转到行”可直接定位,点击“修复 JSON”可自动补上缺失的逗号。
“修复 JSON”会改动哪些内容?
它会删除 // 和 /* */ 注释,去掉多余和重复的逗号,转换单引号字符串,给未加引号的属性名加引号,把 True、False、None 换成小写的 JSON 写法,把 NaN 和 Infinity 变成 null,转义字符串中的原始换行,并补全未闭合的括号。所有改动都会列出,“撤销”可恢复原文。
格式化会改变我的数字或 Unicode 文本吗?
不会。格式化工具会让每个数字和字符串与输入完全一致,包括超出 JavaScript 安全范围的长整数、1.50 这样的末尾零,以及 \u00e9 之类的转义。只有空白会变化,如果你要求排序,键的顺序也会变化。压缩会去掉字符串之外的所有空白。
最大能格式化多大的 JSON 文件?
最大 50 MB 的文件可以直接打开。超过 200,000 个字符的内容会在后台线程中处理,并显示进度条和“取消”按钮,页面不会卡住。超过 2 MB 的文件不会载入编辑框就直接格式化,树形视图仅支持 2 MB 及以下的文档。
能检测重复的键吗?
可以,适用于小于 1 MB 的文档。JSON 语法在技术上允许重复的键,所以文档仍然算有效,但你会看到警告,列出每个重复的键及其所在对象的路径。大多数解析器会默默只保留最后一个值,这是配置出错的常见原因。