JSON 格式化·校验

粘贴 JSON,立即检查是否正确并格式化。出错时会标出第几行第几列,并说明常见原因。

功能

  • 粘贴后立即校验。错误会标出行号、列号并在该行做记号,同时说明末尾逗号、单引号、注释等常见原因
  • 可用 2 个空格、4 个空格或 Tab 缩进格式化,也可压缩为一行。还能按键名排序
  • 自动修复常见错误(注释、末尾逗号、单引号、键名无引号、NaN 等),可先查看所有修改位置再应用
  • 超过 2^53 的大整数按原样输出,不丢位数。会被 JSON.parse 改动的数字、超出安全整数上限的数字和重复的键都会给出提示
  • 可折叠的树形视图。点击键名即可复制 $.items[3].name 这样的 JSONPath 或 JavaScript 写法的路径
  • 可把 \u4e2d 这类转义还原为字符,或把中文写成 \u。支持打开文件和下载结果

适用场景

查看 API 返回

把挤在一行的 JSON 格式化,在树形视图中找到所需的值和路径。

排查配置文件错误

把只显示“Unexpected token”的错误,定位到具体的行、列和原因。

便于比较差异

按键名排序后格式化,方便比较两份 JSON。

核对大数字 ID

确认超过 2^53 的 ID(如社交平台接口返回的 ID)没有丢失精度。

隐私

输入的 JSON 和打开的文件只在浏览器中处理,不会发送到任何地方。输入的内容不会保存(只把缩进等设置保存在本设备上,方便下次使用)。

常见问题

JSON 和 JavaScript 对象有什么区别?

JSON 是基于 JavaScript 对象写法的数据格式,但规则更严格。键名和字符串必须用双引号,值只能是字符串、数字、true、false、null、对象和数组。不能写 undefined、NaN、函数或日期。

为什么不能用注释和末尾逗号?

JSON 用于在程序之间交换数据,为了让各种语言都能同样读取,语法尽量保持精简。需要写注释的配置文件通常使用 JSONC 或 JSON5。使用“自动修复常见错误”可以去掉注释和末尾逗号。

大数字(超过 2^53 的整数)会怎样?

JavaScript 的数字无法精确表示超过 2^53 − 1(9007199254740991)的整数,用 JSON.parse 读取时 9007199254740993 会变成 9007199254740992。本工具不使用 JSON.parse,会按原样保留位数,并对会被改动的数字给出提示。像 9007199254740994 这样超出上限但恰好能精确表示的数,计算时仍可能出现误差,也会给出较轻的提示。在程序中处理时,建议改用字符串或 BigInt。

错误的行号和列号是怎么算的?

都从 1 开始数。列按字符(码位)数计算:汉字算 1 个,但组合表情(如家庭表情、国旗)可能算作多个,因此可能与 VS Code 等编辑器显示的列号不同。由于各浏览器 JSON.parse 的错误信息不同,本工具自行检查语法,并指出错误开始的位置。

重复的键有问题吗?

JSON 标准并未禁止,但大多数程序只保留后面的值,前面的值会被悄悄丢掉。这通常不是有意为之,所以本工具会给出提示(输出中两个都保留)。

输入的 JSON 会被上传吗?

不会。校验、格式化和树形视图都在你的浏览器中完成,文件也不会上传。内部的 API 返回和配置文件都可以放心粘贴。

相关工具

也可以把文件拖到这个输入框里打开。 JSON 只在本浏览器中处理,不会发送到任何地方。文件也只在本地读取,不会上传。

输入 JSON 后会立即校验并格式化。

格式化后的 JSON

缩进

树形视图

点击键名即可复制该位置的路径。

所选位置的路径

JSONPath $
JavaScript data

输入正确的 JSON 后,会在这里以树形显示。