跳到正文
马克工具箱

JSON 格式化与校验

粘贴 JSON 即可美化、压缩,或找出哪里写错了:报错会给出行号、列号和原因说明。64 位 ID 这类大整数原样保留,数据只在你的浏览器里处理。

在浏览器本地运行,输入的内容和文件都不会上传

处理设置

输入

输出

使用步骤

  1. 在左侧粘贴或输入 JSON,输入时实时校验。
  2. 选择缩进方式:2 个空格、4 个空格、Tab,或选「压缩」变成一行。
  3. 勾选「键名排序」让对象的键按字母排序,方便对比两份数据。
  4. 有错误时会提示行列位置;没有错误就可以复制或下载结果。

参数说明

缩进
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 等命令行工具。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具