JSON 格式化怎么用?在线校验、美化与报错排查完整指南

2026-10-14约 7 分钟JSON 工具涉及 5 个工具

从日志、接口响应或数据库里粘出来的 JSON,往往挤成一行或者缩进全乱,想找一个字段要来回翻半天。格式化能让结构一眼看清,语法出错时还会直接告诉你错在哪一行。

核心要点
  • 格式化和校验是同一件事:工具必须先把文本按 JSON 语法解析一遍才能重排缩进,能排版就说明语法合法
  • 格式化只改变空白字符(缩进、换行),键、值、数字精度、数组顺序都不受影响
  • 报错位置指向「第 1 行第 1 列」时,几乎都不是语法问题,而是内容根本不是 JSON(比如接口返回了 HTML 错误页)
  • 键名必须用双引号 —— 这是从其他语言改数据时最常见的报错来源
  • 全部解析在你自己的浏览器里完成,内容不会上传到服务器

#为什么先格式化再改数据

从日志、接口响应或数据库字段里复制出来的 JSON,通常有三种状态:压成一行、缩进混乱、或者转义嵌套了多层。这三种状态下直接改数据都容易出错 —— 多删一个括号、漏掉一个逗号,整段就解析不了,而报错信息往往只说「第 1 行有意外字符」,等于没说。

格式化的作用是把这两件事分开做:先用机器确认结构是合法的,再用人眼看清层级关系。多花的这几秒,通常会省下后面十几分钟的排查。

说明

打个比方,这就像改代码前先让编译器跑一遍 —— 语法错误当场暴露,而不是等到运行时才发现。

#三步完成格式化与校验

  1. 打开 JSON 格式化校验工具,把 JSON 粘贴到左侧输入框。
  2. 点击格式化。合法的话,输出区会给出带缩进的结构;不合法的话,会直接提示错误位置和原因。
  3. 确认无误后点复制,粘回你的代码或配置文件。

格式化和校验其实是同一件事的两面:工具既然要重新排出缩进,就必须先把整段文本按 JSON 语法解析一遍 —— 解析能通过,就说明语法合法;解析失败,就说明有语法错误。所以你不需要先「校验」再「格式化」,一次操作两个结果都有了。

技巧

输入框支持直接拖入 .json 文件,几百 KB 的配置和接口响应不用手动复制粘贴。

#报错信息看不懂?逐条对照

工具给出的报错关键字是固定的几种。下表把「报错原文 → 真正的原因 → 修改示例」放在一起,方便直接对照:

报错关键字真正的原因错误示例改法
Unexpected token出现了 JSON 不允许的写法,最常见是键名没加双引号、用了单引号,或者出现函数、undefined、注释{name: 'Tom'}{"name": "Tom"}
Unexpected end of input括号或引号没闭合,通常是复制时漏了尾部{"a": 1{"a": 1}
Unexpected token } in JSON多了一个逗号 —— 末项后面跟了 ,{"a": 1, "b": 2,}{"a": 1, "b": 2}
Bad control character字符串里混进了真实的换行或制表符字符串内直接回车换行写成 \n、\t
Unexpected token ' in JSON at position 0文件开头有 BOM,或者内容其实是 HTML、报错页文件头有不可见字符另存为「UTF-8 无 BOM」

下面逐个看实际的错误与修正对照。

多余逗号(从其他语言改数据时最容易犯):

JSON
{
  "name": "张三",
  "age": 30,
}

上面会报 Unexpected token } in JSON。删掉 30 后面的逗号即可:

JSON
{
  "name": "张三",
  "age": 30
}

键名没有双引号(JavaScript 对象可以,JSON 不行):

JSON
{ id: 1, "name": "Alice" }

改成 { "id": 1, "name": "Alice" } 就合法了。

注意

当报错位置指向「第 1 行第 1 列」时,几乎都不是语法本身的问题,而是内容根本不是 JSON —— 比如接口返回了 HTML 错误页、或者把 YAML 当成了 JSON。

#什么时候该换另一个工具

JSON 相关的工具不止一个,按目的选能省不少事:

你想做的事用哪个说明
美化缩进、检查语法JSON 格式化校验最常用,先过这一关
在深层嵌套里找字段JSON 视图查看器树形折叠展开,几十层嵌套时比文本滚动快得多
把 JSON 塞进 URL 或配置项JSON 压缩转义去掉所有空白并转义成一行,也能反向还原
写 YAML 配置JSON 转 YAML双向转换,保留嵌套与数组结构
根据接口返回生成代码JSON 生成实体类一次生成 Java、TypeScript 或 Go 的类定义

判断标准很简单:要「看懂结构」就用格式化或树形视图,要「换个格式」就用转换类工具。

#三个省时间的技巧

#先格式化,再搜索字段

在压成一行的 JSON 里搜索字段名,结果只有一列;格式化之后每层一行,搜索结果会自然带上缩进,父级关系一眼可见。字段名重复较多次时,这个差别很明显。

#大文件不要反复全量格式化

几百 KB 以上的 JSON 每次格式化都要完整解析一遍。如果只是改一两个字段,改完再格式化一次就够了,不要来回切换 —— 真正需要反复折叠查看的话,直接用树形视图更合适。

#顺手确认编码

中文出现乱码时,问题往往不在 JSON 本身,而在编码。确认源文件是 UTF-8,并且没有 BOM。JSON 标准要求用 UTF-8,其他编码的字符即使语法合法也可能显示异常。

说明

编码问题的一个常见表现是:JSON 合法、能格式化,但中文全变成 锟斤拷 之类的乱码 —— 这几乎一定是源文件被存成了 GBK。

#常见问题

#在线格式化 JSON 会不会把我的数据上传?

不会。这个工具在你自己的浏览器里完成全部解析和格式化,粘贴的内容不会被发送到服务器,关闭页面后数据就没了。你可以打开浏览器的开发者工具网络面板自己确认:格式化过程中没有任何请求发出。这也是本站除「在线运行」以外的工具统一的做法。

#格式化会不会改变数据本身?

不会。格式化只调整空白字符 —— 缩进、换行和空格。键、值、数字精度、数组顺序都不受影响。这也是为什么格式化之后可以放心把结果粘回代码里:解析出的对象和原来完全等价。

#多大的 JSON 文件能处理?

几 MB 以内的文件在浏览器里通常都能处理,具体上限取决于你电脑的内存。不过文件越大,浏览器的响应会越慢,超过十几 MB 建议改用命令行工具。日常的接口响应、配置文件基本都在几百 KB 以内,浏览器完全够用。

#JSON 和 JavaScript 对象有什么区别?

JSON 是数据交换格式,JavaScript 对象是语言里的数据类型,两者写法相似但规则不同。

JSON 的键名必须用双引号,不能有注释、函数、undefined 和尾随逗号;而 JavaScript 对象这些都允许。所以从代码里直接复制对象字面量去当 JSON 用,经常就报 Unexpected token —— 反过来,合法的 JSON 一定是合法的 JavaScript 对象字面量。

#数字精度会丢失吗?

大整数可能丢精度。JSON 标准没有规定数字长度,但 JavaScript 内部用双精度浮点数表示数字,超过 2^53 的整数在解析时可能被改写。如果数据里有长整型 ID(例如雪花算法生成的 19 位 ID),格式化后要核对一下末尾几位;这类字段在传输时通常建议用字符串保存。

本文提到的工具

相关文章