工具

JSON 格式化与校验

JSON

格式化、校验与压缩 JSON。精确的错误行列定位,并带语法高亮。

100% 客户端 无后端

不获取远程 URL;请直接粘贴你的 JSON。

输入
输出
在左侧粘贴 JSON,格式化结果将显示在此处。
本页内容

什么是 JSON 格式化?#

JSON 在传输时往往被压成一行——接口日志、打包工具的输出、CDN 上的配置,几乎都是没有缩进的密集字符串。JSON 格式化工具做的事,就是把这一团字符重新排版成有层级、有缩进、能一眼看清结构的文本。听起来简单,但调试接口、对配置文件挑错、比对两次返回值哪里不同时,格式化往往是第一步。

本页把三件事合并到一起:美化(按缩进重新换行)、校验(告诉你这段文本到底合不合法)、压缩(去掉所有空白,输出最小体积)。校验失败时,状态栏不会只甩给你一个”解析错误”,而是给出准确的行号和列号——这一个细节,往往就是五秒钟修好和二十分钟干瞪眼的区别。

怎么使用#

  1. 把 JSON 粘进左侧的 输入框。如果只是想看看效果,点工具栏的 示例 会加载一段小样本。
  2. 缩进 下拉里选一种风格:2 空格、4 空格、Tab。2 空格是目前最常见的约定;Tab 适合接下来要粘进已有 Tab 配置的编辑器。
  3. 选接下来做什么:
    • 格式化 —— 按所选缩进美化。
    • 压缩 —— 拼成一行,去掉所有空格。准备贴进请求体之前常用。
    • 校验 —— 只检查语法,不改原文;当你只想得到”合法 / 不合法”的结论时用它。
  4. 勾上 键名排序,对象里的字段会按字母序输出。这个选项在对拍两次接口返回时格外有用:键名一排序,剩下的差异就只剩真正有意义的那些。
  5. 勾上 尾逗号,会输出一种更宽松、更适合人读的写法(最后一项后面也带逗号)。注意严格的解析器会拒绝这种写法——只在本机阅读时再开。
  6. 右侧 输出框 看结果。下方的状态栏会显示 Valid JSON 或精确的错误位置(行:列 — 信息)。点 复制 取走结果。

主要特性#

  • 原生严格解析。 直接用浏览器自带的 JSON 实现做解析,通过校验的就等于运行时通过,没有自定义方言,没有意外。
  • 精确的错误定位。 多了一个尾逗号、键名漏了引号、括号没闭合——每一条都会指出具体行号和列号,而不是含糊的 “parse error”。
  • 三种缩进风格。 2 空格、4 空格、Tab。
  • 可选的键名排序和尾逗号。 每次任务独立勾选,不用重新粘贴。
  • 完全在浏览器内运行。 粘进来的文本由本页在你的浏览器里处理,不会上传——本站根本没有后端可以接收。
  • 实时字符计数。 两栏都显示各自体积,压缩 payload 时很方便。

实例演示#

假设一个配置接口返回下面这段压缩 JSON,你需要找出拼写不对的字段名:

输入(压缩成一行):

{"server":"api.example.com","port":443,"retry":{"count":3,"backoffMs":[100,400,1600]},"tags":["prod","primary"]}

缩进选 2 空格、勾上 键名排序,点 格式化

{
  "port": 443,
  "retry": {
    "backoffMs": [
      100,
      400,
      1600
    ],
    "count": 3
  },
  "server": "api.example.com",
  "tags": [
    "prod",
    "primary"
  ]
}

键名排过序之后,backoffMs 紧挨着 count,那组原本被压在一行里看不出来的退避序列(100、400、1600,每次翻 4 倍)一下就显出来了。注意 tags 仍然是 ["prod","primary"]——键名排序只重排对象的字段名,绝不碰数组元素,你放进去什么顺序,出来还是什么顺序。

常见问题#

这个工具会把我的数据上传吗?#

不会。解析完全由浏览器内置的 JSON 接口在本页内完成。既没有服务器接收,也没有任何网络请求——你的输入从头到尾没离开过本机。

状态栏提示不合法,但我看起来没问题,怎么办?#

看状态栏给的行号和列号。最常见的四类问题是:闭合括号前多了一个逗号、字符串用了单引号(JSON 只认双引号)、对象键名没加引号、以及从别处粘贴进来的 Tab 或控制字符。列号会直接指到出错的位置。

“键名排序” 具体是怎么排的?#

把每个对象里的字段按字母序(ASCII 序,区分大小写)重新输出。数组顺序不动——数组的位置是有语义的,键名排序绝不会动数组元素。

能处理很大的文件吗?#

可以,上限取决于浏览器内存。几兆以上的文件格式化时会有一点点卡顿,状态栏有字符计数方便你判断体积。本页不做流式处理,所以几百兆的超大输入会让标签页吃紧。