MagicTools
developerMarch 18, 2026107 views4 min read

JSON 格式化工具使用教程:格式化、压缩与验证技巧

什么是 JSON?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,由 Douglas Crockford 在 2001 年提出并推广。它基于 JavaScript 对象字面量语法,但已成为语言无关的通用标准(RFC 8259)。

为什么 JSON 成为现代 API 的标准格式?

  • 可读性好:比 XML 更简洁,人类可直接阅读和理解
  • 解析简单:几乎所有编程语言都有原生或高效的 JSON 库
  • 体积小:比 XML 省去大量冗余标签
  • 类型丰富:支持字符串、数字、布尔值、数组、对象、null
{
  "name": "张三",
  "age": 28,
  "skills": ["Python", "TypeScript", "Go"],
  "active": true,
  "address": null
}

三种核心功能详解

1. 格式化(Pretty Print)

将压缩或混乱的 JSON 展开为层次清晰、缩进整齐的格式,便于人类阅读。

压缩前:

{"name":"张三","age":28,"skills":["Python","TypeScript"],"address":{"city":"北京","district":"朝阳"}}

格式化后(2 空格缩进):

{
  "name": "张三",
  "age": 28,
  "skills": [
    "Python",
    "TypeScript"
  ],
  "address": {
    "city": "北京",
    "district": "朝阳"
  }
}

在线工具支持选择缩进方式:2 空格、4 空格或 Tab,根据团队规范选择即可。

2. 压缩(Minify)

移除所有不必要的空白字符(空格、换行、缩进),将 JSON 压缩为单行,减小传输体积。

  • 适用场景:API 响应体、嵌入 HTML 的配置数据、CDN 缓存的静态 JSON 文件
  • 体积节省:复杂 JSON 通常可减少 20%~40% 的字节数
  • 注意:压缩后不适合人工阅读,调试时请先格式化

3. 验证(Validate)

检测 JSON 的语法是否合法,并定位错误所在行号和列号。

当 JSON 存在语法错误时,工具会高亮显示错误位置,例如:

Error: Unexpected token '}' at line 5, column 3
Expected ',' or ']' after array element

常见 JSON 语法错误及修复

开发中最频繁出现的 JSON 错误:

❌ 属性名必须用双引号

// 错误:单引号或不加引号
{ name: "张三" }
{ 'name': "张三" }

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

❌ 尾随逗号不允许

// 错误:最后一个元素后有逗号
{
  "name": "张三",
  "age": 28,
}

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

❌ 不支持注释

// 错误:JSON 不支持任何形式的注释
{
  // 用户信息
  "name": "张三",
  /* "age": 28 */
}

// 正确:移除所有注释
{
  "name": "张三"
}

❌ 不允许单引号字符串

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

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

❌ 特殊值的写法

// 错误:布尔值和 null 必须小写
{ "active": True, "data": NULL, "value": Undefined }

// 正确
{ "active": true, "data": null }

常见错误速查表

错误现象 原因 修复方法
Unexpected token ' 尾随逗号 删除最后一个逗号
Unexpected string 属性名未加双引号 给所有键名加双引号
Unexpected token '#' 包含注释 删除所有注释
Unexpected end of JSON JSON 不完整 检查括号是否匹配
Circular reference 循环引用对象 重构数据结构

在线工具使用步骤

访问 MagicTools JSON 工具,操作流程如下:

  1. 粘贴 JSON:将 API 响应或配置文件内容粘贴到左侧编辑区
  2. 自动验证:工具实时检测语法,错误行会红色高亮标注
  3. 选择操作
    • 点击「格式化」展开为可读格式
    • 点击「压缩」转为单行紧凑格式
  4. 查看结果:右侧面板展示处理结果,支持语法高亮
  5. 复制输出:点击「复制」按钮,或直接下载为 .json 文件

实战场景

API 调试

从浏览器 Network 面板复制响应体,粘贴到 JSON 格式化工具:

  • 快速定位嵌套层级,找到需要的字段
  • 验证 API 返回结构是否符合预期

配置文件检查

package.jsontsconfig.jsonappsettings.json 等配置文件若有语法错误,会导致工具链崩溃。修改后用验证工具提前检测。

日志分析

后端以 JSON 格式输出的结构化日志,格式化后便于排查问题字段。


JSONPath 查询简介

当 JSON 结构复杂时,可用 JSONPath 快速提取数据,类似 XPath 之于 XML。

// 原始 JSON
{
  "store": {
    "books": [
      { "title": "深入理解计算机系统", "price": 89 },
      { "title": "Clean Code", "price": 59 }
    ]
  }
}

// JSONPath 查询示例
$.store.books[0].title          // → "深入理解计算机系统"
$.store.books[*].price          // → [89, 59]
$.store.books[?(@.price < 70)]  // → 价格低于70的书

命令行工具 jq 是处理 JSON 的利器:

# 格式化
cat data.json | jq '.'

# 提取字段
cat data.json | jq '.store.books[0].title'

# 过滤
cat data.json | jq '.store.books[] | select(.price < 70)'

常见问题 FAQ

Q:JSON 和 JavaScript 对象有什么区别?

A:有几个关键差异:① JSON 的键必须用双引号,JS 对象可以不加引号;② JSON 不支持函数、undefined、Symbol 等 JS 特有值;③ JSON 不支持注释;④ JSON 数字不允许前导零。JSON.stringify() 可将 JS 对象序列化为 JSON,JSON.parse() 则相反。

Q:JSON5 是什么?与 JSON 有什么关系?

A:JSON5 是 JSON 的超集扩展,放宽了一些限制:支持单引号字符串、允许尾随逗号、支持注释、允许键名不加引号。主要用于配置文件场景(如 .eslintrc、Babel 配置)。但 JSON5 不是标准 JSON,API 通信仍应使用标准 JSON。

Q:如何处理超大型 JSON 文件(几百 MB)?

A:浏览器在线工具不适合处理超大文件,推荐:① 命令行 jq 工具,流式处理任意大小文件;② Python ijson 库,逐条解析避免内存溢出;③ 数据库工具(MySQL、PostgreSQL 均支持 JSON 字段查询)。

Q:JSON 支持日期时间类型吗?

A:JSON 规范本身没有日期类型。通常的做法是:用 ISO 8601 格式字符串(如 "2026-03-18T10:00:00Z")表示日期,或用 Unix 时间戳数字。接收方按约定解析。

Q:JSON 如何处理中文字符?

A:JSON 规范要求使用 UTF-8 编码,中文字符完全支持,可直接包含在字符串中。也可以用 Unicode 转义:"\u4e2d\u6587" 等同于 "中文"。现代工具和语言库均默认支持中文,无需特殊处理。


小结

JSON 格式化工具是每位开发者的必备利器,掌握三个核心操作:

  • 格式化:API 调试和代码审查时,让结构一目了然
  • 压缩:生产部署时减小传输体积,提升性能
  • 验证:修改配置或构建 API 请求时,提前发现语法错误

遇到 JSON 问题,牢记最常见的四类错误:单引号、尾随逗号、注释、不匹配的括号。MagicTools JSON 工具 提供实时验证和一键操作,让 JSON 处理更高效。

Published by MagicTools