A
General2026年8月24日1 分钟阅读

怎么格式化 JSON?缩进、查错、压缩一篇讲透(2026)

JSON 格式化怎么做?缩进排版、语法校验、生产环境压缩一次讲清:系统自带命令和浏览器工具,不用装任何软件。

怎么格式化 JSON?缩进、查错、压缩一篇讲透(2026)

先给结论:格式化 JSON 按场景分三种——缩进排版让人能读、语法校验确认没写错、压缩体积给生产环境用。第一条命令同时搞定前两种:python3 -m json.tool file.json。它边美化边校验,是 Python 标准库自带的功能,Python 2.6 起就有了。我每天拿它处理 API 响应和配置导出,从没掉过链子。

在浏览器里的话,JSON 格式化工具能做的更多,还带语法高亮——当你盯着 2000 行的 API 响应时,这功能就值回票价了。

JSON 为什么会变得没法看

所有 API 返回的都是压缩版 JSON,工具生成的配置文件永远是单行。机器无所谓——解析器不在乎空白——但人类遭殃。500KB 没缩进的响应没法读;同样数据用 2 空格缩进,就是能翻着看的文档。

压缩版 JSON 还藏问题。缺个逗号、多个引号,藏在文字墙里看不见;一美化,解析器必须理解整个结构——它会精确告诉你坏在哪一行。

系统自带的格式化方法

你机器上八成已经有工具,不用装:

Python(有 Python 3 就行):

python3 -m json.tool data.json            # 美化输出到终端
python3 -m json.tool data.json --compact  # 反过来压缩

Node.js(一行):

node -e "const d=require('fs').readFileSync(0,'utf8');console.log(JSON.stringify(JSON.parse(d),null,2))"

jq(JSON 界的瑞士军刀):

jq . data.json        # 美化
jq -c . data.json     # 压缩

这三个都是边格式化边校验。输入有语法错误时,你会拿到带行号的解析错误,而不是一堆乱码输出——这才是"格式化"真正的价值。

好用的格式化工具,除了缩进还做三件事

缩进只是及格线。值得留的工具还干三件事:

带明确报错的语法校验。 好的格式化工具是正经解析输入(不是正则硬凑),并告诉你错在哪。"第 42 行属性值后应为 ',' 或 '}'"永远比一句"invalid JSON"有用。

压缩模式。 同样数据,去掉全部空白。这才是要发给生产环境的东西——没开 gzip 就先省了 20-40% 的体积。

语法高亮。 键、字符串、数字、布尔值分色显示,2000 行的响应也能扫读。听着像面子工程,等你用它排查过嵌套配置就懂了。

还有两个值得一提的选项:键排序(按键名字母排序,diff 和对比方便很多)和缩进宽度(2 空格是社区默认,团队规范说 4 或 tab 也行)。两者都不改数据——改的是你读它的速度。

我实际用的流程

  1. 粘贴压缩版 JSON 或拖入文件。
  2. 有错就看它指出的行号,改源头,重新粘贴。
  3. 2 空格缩进美化,打开高亮,扫一遍结构。
  4. 完事切到压缩模式,把精简版复制去当请求体。

浏览器里的版本,我的 ArkToolz JSON 格式化工具 全都有:美化/压缩双模式、2/4/tab 缩进、递归键排序、语法高亮、带位置的精确报错。全程浏览器本地运行——粘个 10MB 的配置,文件不出本机。

大家天天踩的 JSON 语法规则

JSON 严格是设计使然(RFC 8259)。日常最容易踩的几条:

  • 不能有尾逗号。 {"a": 1,} 是错的。JS 对象允许,JSON 不允许。
  • 不能用单引号。 {'a': 1} 是错的。键和字符串只能双引号。
  • 不能写注释。 JSON 没有注释语法。配置文件里用 // 的,那不是 JSON——是超集(比如 JSON5 或 JS 对象字面量),严格解析器会拒收。
  • 没有 undefined 和函数。 JSON 只支持对象、数组、字符串、数字、布尔值和 null。

实践中大部分"invalid JSON"报错都出自这四条。记住它们,你就能抢在格式化工具之前发现问题。

常见问题

格式化 JSON 会改数据吗?
不会。美化只是加空白,压缩只是去空白。解析出来的结构完全一样——这也是为什么校验发生在解析阶段而不是格式化阶段。

JSON 和 JavaScript 对象有什么区别?
JSON 是有严格语法规则的文本格式;JS 对象是语法更宽松的内存结构。{a: 1} 是合法的 JS 对象字面量,但不是合法 JSON。严格正是它的设计目的——JSON 要让任何语言都能解析,不只是 JavaScript。

压缩之后 API 响应怎么还是那么大?
压缩只去空白(通常省 20-40%)。真正的体积大头靠传输层的 gzip/brotli 和源头修剪冗余字段。

浏览器控制台里怎么格式化 JSON?
console.log(JSON.stringify(data, null, 2)) 就能美化任何 JS 对象或已解析的响应。多数开发者工具的 Network 面板自带"Response"标签页,自动美化 JSON——复制之前先看看那里。

30 秒检查清单

  • JSON 合法(没有尾逗号、单引号、注释)
  • 阅读用 2 空格缩进,发布用压缩版
  • 大响应开语法高亮
  • 要 diff 或对比时开键排序

压缩版 JSON 是给机器看的;格式化后的 JSON 是给你看的。用正经解析器校验、2 空格美化、压缩版上线。免费在线 JSON 格式化工具 在浏览器里全搞定——不用装、不上传、报错带精确位置。

JSON格式化工具 - 在线JSON美化压缩 | ArkToolz

免费在线JSON格式化工具,支持JSON美化、压缩、排序键、语法高亮,可选2空格/4空格/Tab缩进,纯前端本地处理保护隐私安全,无需注册

打开工具免费 · 无需注册 · 浏览器本地运行