JSON 格式化与美化工具

把压缩过或杂乱的 JSON 变成易读、缩进统一的 JSON。输入时即列出每个错误的精确行列位置,数据不会离开你的浏览器。

输入
输出

    数据不会离开你的浏览器。快捷键:Ctrl/⌘ + Enter 执行主操作。

    什么是 JSON 格式化工具?

    JSON 格式化工具(也叫 JSON 美化工具或 pretty-printer)会把 JSON 文本重新输出,每行一个值并统一缩进,让对象和数组的嵌套关系一目了然。数据本身不会改变:按照 RFC 8259 和 ECMA-404 的定义,JSON 中记号之间的空白没有意义。改变的是,你能多快在 API 响应、日志行或配置文件中找到想要的字段。

    如何美化 JSON

    1. 粘贴 JSON到输入编辑器,或把 .json 文件拖进去,也可以点击“打开文件”。
    2. 选择缩进:2 个空格、4 个空格或制表符。勾选“键排序”可将每个对象的键按字母顺序排列。
    3. 点击“格式化”(或按 Ctrl/⌘ + Enter)。格式化后的 JSON 会显示在右侧,可直接复制或下载。

    示例

    下面是某个 API 返回的压缩响应:

    {"id":42,"user":{"name":"Ana","roles":["admin","dev"]},"active":true,"balance":12345678901234567890}

    使用 2 个空格缩进后变为:

    {
      "id": 42,
      "user": {
        "name": "Ana",
        "roles": [
          "admin",
          "dev"
        ]
      },
      "active": true,
      "balance": 12345678901234567890
    }

    注意最后一个值。如果格式化工具基于 JSON.parse 和 JSON.stringify,它会变成 12345678901234567000,因为 JavaScript 数字只能保存大约 15–17 位有效数字。ID、以最小单位计的账户余额以及区块链金额经常超出这个范围。这里会原封不动地保留数字文本。

    JSON 无效时会怎样

    格式化工具会边输入边校验。如果文本不是有效的 JSON,状态栏会变红,问题列表会显示每个错误的行号和列号;点击某一项即可跳转过去。常见问题包括最后一项后的尾随逗号、两个属性之间缺少逗号、单引号、键未加引号、注释以及括号不匹配。点击修复 JSON可一步完成自动修复并格式化结果;各类错误是如何检测的,请参阅 JSON 校验器页面。

    格式化选项说明

    JSON 格式化常见问题

    JSON 格式化工具和 JSON 美化工具有什么区别?

    没有区别:两个名字指的是同一件事,即用换行和缩进重新输出 JSON,方便人阅读。有些工具也称之为 pretty-print。相反的操作是压缩。

    JSON 应该用 2 个空格、4 个空格还是制表符缩进?

    JSON 本身并不在乎。JavaScript 项目和 API 文档最常用 2 个空格,Python(json.dumps(indent=4))和 Java 常用 4 个空格,而制表符能让文件更小,并让每个读者自行决定显示宽度。跟项目所用的格式化工具保持一致即可,这样 diff 才会干净。

    为什么我的 JSON 没有被格式化?

    格式化需要有效的 JSON。如果存在错误,问题列表会显示位置;修正它,或点击“修复 JSON”让工具修复尾随逗号、单引号、缺失括号等常见错误,然后检查结果。

    键排序会改变 JSON 的含义吗?

    不会。RFC 8259 将对象定义为无序集合,因此任何符合规范的解析器都会把排序前后的版本视为相同。在比较两个文件或提交生成的 JSON 之前排序很有用。数组顺序永远不会被改变。

    大数字会被保留吗?

    会。许多格式化工具会把文本转成 JavaScript 数字,把 12345678901234567890 静默地舍入为 12345678901234567000。本工具会按原样输出每个数字,包括 1.50 这样的末尾零。

    可以格式化 JSON Lines(NDJSON)吗?

    JSON Lines 文件每行一个 JSON 值,它不是单个 JSON 文档,因此校验器会报告第一个值之后还有内容。点击“修复 JSON”即可把这些行合并为一个数组,然后再进行格式化。