使用步骤
- 在左侧粘贴或输入 JSON,输入时实时校验。
- 选择缩进方式:2 个空格、4 个空格、Tab,或选「压缩」变成一行。
- 勾选「键名排序」让对象的键按字母排序,方便对比两份数据。
- 有错误时会提示行列位置;没有错误就可以复制或下载结果。
参数说明
- 缩进
- 2 个空格最常见(npm、Prettier 默认);4 个空格与 Python 的 json.dumps(indent=4) 一致;压缩会去掉所有空白,体积最小。
- 键名排序
- 在所有层级按键名(转义后的实际值)排序,不会改变数组的顺序。
- 大整数
- 数字按原文保留。很多格式化工具会把 JSON 解析成 JavaScript 数字,悄悄把 12345678901234567890 变成 12345678901234567000。
常见 JSON 错误及修复方法
| 提示 | 常见原因 |
|---|---|
出现了意外的字符 ' |
用了单引号而不是双引号 |
| 末尾多余的逗号 | 最后一项后面多了逗号:[1, 2,] |
出现了意外的字符 / |
从 JavaScript 里复制了 // 注释 |
| 内容提前结束 | 缺少 } 或 ],常见于复制不完整 |
| 控制字符必须转义 | 字符串里有真实的 Tab 或换行,应写成 \t、\n |
| 文档结束后还有多余内容 | 粘贴了两段 JSON,或右括号后面还有其他文字 |
示例
输入:
{"id":9007199254740993,"name":"Ada","tags":["math","code"]}
用 2 个空格格式化后,注意 ID 没有被改变:
{
"id": 9007199254740993,
"name": "Ada",
"tags": [
"math",
"code"
]
}
常见问题
为什么提示「JSON 不允许末尾多余的逗号」?
标准 JSON(RFC 8259)不允许对象或数组最后一项后面有逗号,虽然 JavaScript 允许。删掉 } 或 ] 前面的那个逗号即可。
JSON 里能用单引号或注释吗?
不能。JSON 字符串必须用双引号,注释也不属于 JSON 格式。tsconfig.json 等文件能写注释,是因为对应工具使用了宽松的 JSONC 解析器。
我的 JSON 会上传到服务器吗?
不会。解析和格式化都在浏览器里完成,接口返回、Token、配置文件都不会离开你的设备。
为什么大 ID 在其他工具里会变?
JavaScript 用 64 位浮点数存储数字,只能精确表示到 9,007,199,254,740,991。本工具不做数字转换,超出这个范围的 ID 也能保持不变。
能处理多大的文件?
几 MB 的 JSON 在笔记本上可以瞬间完成格式化。几百 MB 的文件建议使用 jq 等命令行工具。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。