DevToolbox
All articles

JSON格式化工具完整指南:在线美化、校验与压缩

· 7 min read

在日常开发工作中,JSON 是前后端数据交换最常见的格式。无论是调试 API 响应、阅读配置文件,还是排查数据问题,JSON 格式化工具都是开发者的必备利器。本文将系统介绍 JSON 的基础语法、常见错误的排查方法,以及在线格式化工具的最佳使用技巧。

JSON 是什么,为什么需要格式化

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁性和广泛的语言支持而成为互联网数据传输的事实标准。一个典型的 API 响应可能长这样:

{"id":1,"name":"张三","email":"[email protected]","roles":["admin","user"]}

这段 JSON 对机器来说完全可读,但人类阅读起来非常费力。格式化(美化)之后:

{
  "id": 1,
  "name": "张三",
  "email": "[email protected]",
  "roles": [
    "admin",
    "user"
  ]
}

结构层次一目了然。格式化不改变数据内容,只是调整了空白字符和换行,使 JSON 更易于阅读和调试。

JSON 基本语法规则

JSON 有几条严格的语法规则,与 JavaScript 对象字面量有所不同,初学者容易混淆:

  • 键名必须使用双引号"name": "张三" 是合法的,name: "张三" 则不合法。
  • 字符串值必须使用双引号:不能用单引号。'value' 是非法 JSON。
  • 不支持注释:JSON 规范中不存在注释语法,// 注释/* 注释 */ 都会导致解析失败。
  • 不允许尾逗号(trailing comma):最后一个元素后面不能有逗号。
  • 数值类型:不支持十六进制(0xFF)、八进制或 NaN/Infinity,这些都是非法 JSON。
  • 顶层值:JSON 文档的顶层可以是对象、数组、字符串、数字、布尔值或 null,不限于对象。

常见 JSON 错误举例与修正

下面列举开发中最频繁遇到的 JSON 错误,每个示例都附有错误版本和正确版本的对比。

错误一:键名未加双引号

// 错误
{
  name: "张三",
  age: 28
}

// 正确
{
  "name": "张三",
  "age": 28
}

错误二:尾逗号(Trailing Comma)

// 错误
{
  "name": "张三",
  "age": 28,
}

// 正确
{
  "name": "张三",
  "age": 28
}

错误三:使用单引号

// 错误
{
  'name': '张三'
}

// 正确
{
  "name": "张三"
}

错误四:包含注释

// 错误
{
  // 用户信息
  "name": "张三",
  "age": 28 /* 年龄 */
}

// 正确(移除所有注释)
{
  "name": "张三",
  "age": 28
}

错误五:非法的数值

// 错误
{
  "ratio": .5,
  "count": 0xFF,
  "invalid": NaN
}

// 正确
{
  "ratio": 0.5,
  "count": 255,
  "invalid": null
}

格式化(美化)vs 压缩(Minify)的使用场景

格式化(美化)是将紧凑的 JSON 展开为带有缩进和换行的可读形式,目的是方便人类阅读和调试。适用场景:

  • 调试 API 响应或查看配置文件内容
  • 代码审查时检查数据结构
  • 向团队成员展示数据样本
  • 排查 JSON 解析错误

压缩(Minify)则是去除所有不必要的空白字符,将 JSON 压缩为单行。适用场景:

  • 生产环境的 API 响应,减少传输体积
  • 将 JSON 嵌入 HTML 或 JavaScript 文件
  • 构建流程中的静态资源优化
  • 日志记录,避免多行日志割裂上下文

一个实际的例子:一份包含 500 个用户记录的 JSON,格式化后可能有 8,000 行、约 150 KB;压缩后通常只有 60–80 KB,节省约 50% 的流量。在高并发场景下,这个差距对性能影响显著。

命令行校验 JSON 的方法

不想打开浏览器?命令行也能快速验证 JSON 的合法性,以下是两种常用方案。

方法一:使用 Python 内置模块(无需额外安装)

# 校验文件
python3 -m json.tool data.json

# 校验并格式化输出
python3 -m json.tool data.json --indent 2

# 从管道读取(适合配合 curl 使用)
curl -s https://api.example.com/users | python3 -m json.tool

# 如果 JSON 合法,会输出格式化结果;如果非法,会输出错误信息,例如:
# json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 3 (char 23)

方法二:使用 jq(功能更强大的 JSON 处理工具)

# macOS 安装
brew install jq

# Ubuntu/Debian 安装
sudo apt-get install jq

# 校验并美化输出
jq . data.json

# 提取特定字段
jq '.name' data.json

# 过滤数组
jq '.users[] | select(.age > 18)' data.json

# 如果 JSON 非法,jq 会输出详细的错误位置信息

推荐将 jq 加入开发环境,它不仅能校验 JSON,还能进行字段提取、数据转换,是命令行处理 JSON 的瑞士军刀。

在线 JSON 格式化工具的使用技巧

在线工具的优势在于无需安装、随开随用。使用 DevToolbox JSON 格式化工具 时,以下技巧能大幅提升效率:

  • 快捷键操作:按 Ctrl/Cmd + Enter 立即格式化,Ctrl/Cmd + K 清空输入区域。
  • 实时错误提示:工具会在输入过程中实时标注语法错误的具体行号,无需等待提交。
  • 一键切换模式:在美化和压缩模式之间快速切换,适应不同场景需求。
  • 大文件支持:DevToolbox 采用虚拟滚动技术,即使处理数万行的大型 JSON 也不会卡顿。
  • 隐私安全:所有处理完全在浏览器本地完成,数据不会上传到服务器,适合处理包含敏感信息的配置文件。
  • URL 分享:格式化结果可通过 URL 分享给同事,方便团队协作调试。

小结

掌握 JSON 的基本语法规则,能让你快速定位和修复常见的解析错误。格式化和压缩各有其适用场景:开发调试时用美化提高可读性,生产环境用压缩节省带宽。无论是命令行的 python3 -m json.tool、功能强大的 jq,还是在线格式化工具,选择最适合当前工作流的方式,能让你的 JSON 处理工作事半功倍。

Try it free
JSON 格式化工具
100% client-side · no signup · no upload
Open tool →