正在加载,请稍候…

如何格式化和验证 JSON:开发者指南

学习使用我们的免费在线工具格式化、验证和调试 JSON。了解常见 JSON 语法错误、编码陷阱以及开发者的最佳实践。

如何格式化和验证 JSON:开发者指南

什么是 JSON 格式化?

JSON 格式化将压缩或结构混乱的 JSON 转换为具有适当缩进、换行和一致间距的人类可读形式。虽然计算机对紧凑或格式化的 JSON 处理效果相同,但人类发现缩进的 JSON 更容易阅读和理解。

如何格式化和验证 JSON:开发者指南插图

为什么 JSON 需要格式化

来自 API、数据库查询和日志文件的 JSON 通常以压缩或格式不一致的形式出现:

压缩(机器可读,对人类困难):

{"user":{"id":1,"name":"Alice","roles":["admin","editor"],"settings":{"theme":"dark","notifications":true}}}

格式化(人类可读):

{
  "user": {
    "id": 1,
    "name": "Alice",
    "roles": [
      "admin",
      "editor"
    ],
    "settings": {
      "theme": "dark",
      "notifications": true
    }
  }
}

JSON 格式化选项

缩进

  • 2 个空格:Web 项目中最常见(许多格式化工具的默认值)
  • 4 个空格:Python 和一些风格指南中常见
  • 制表符:物理宽度一致,但在不同编辑器中渲染效果不同

键排序

按字母顺序对对象键排序使大型 JSON 对象更易于导航,并在版本控制中产生稳定的差异。

如何格式化和验证 JSON:开发者指南插图

数组格式化

数组可以每行一个项目(更好的可读性)或紧凑(适用于短数组)进行格式化。智能格式化工具根据数组内容和长度应用不同的规则。

JSON 验证

格式化工具也会验证 JSON 语法。常见的 JSON 错误:

  • 尾随逗号:JSON 不允许在最后一个数组/对象元素后加逗号(与 JavaScript 不同)
  • 未加引号的键:JSON 要求键用双引号括起来
  • 单引号:JSON 只使用双引号,不使用单引号
  • 注释:标准 JSON 不支持注释(JSON5 和 JSONC 支持)
  • Undefined/NaN/Infinity:这些 JavaScript 值不是有效的 JSON

不同上下文中的 JSON

配置文件

大多数配置文件(package.json、tsconfig.json、.eslintrc.json)按惯例使用 2 空格缩进。对这些文件进行版本控制时,一致的格式化有助于产生可读的差异。

如何格式化和验证 JSON:开发者指南插图

API 响应

API 通常通过 HTTP 提供压缩的 JSON。开发者工具(浏览器开发者工具、Postman、Insomnia)会进行格式化以便显示。

日志

结构化 JSON 日志记录产生压缩输出。日志分析工具如 Kibana、Splunk 和 Datadog 解析原始 JSON 并格式化显示。

数据库存储

PostgreSQL 的 JSONB 类型在内部以二进制形式存储 JSON。json_pretty() 函数在查询时将其格式化以便显示。

JSON Schema

JSON Schema 是一种用于注释和验证 JSON 文档的词汇表:

{
  "$schema": "http://json-schema.org/draft-07/schema",
  "type": "object",
  "required": ["name", "email"],
  "properties": {
    "name": {"type": "string", "minLength": 1},
    "email": {"type": "string", "format": "email"},
    "age": {"type": "integer", "minimum": 0}
  }
}

验证器根据 schema 检查 JSON 数据,在结构或类型错误到达应用程序代码之前捕获它们。

使用 JSON 格式化工具

我们的工具:

  1. 粘贴 JSON 数据 — 接受压缩、部分格式化或格式错误的输入
  2. 即时格式化 — 应用一致的缩进和换行
  3. 语法验证 — 报告错误并附带行号,便于修复
  4. 排序键 — 可选地对对象属性按字母顺序排序
  5. 多种缩进选项 — 2 个空格、4 个空格或制表符
  6. 压缩切换 — 在格式化和压缩视图之间切换
  7. 复制格式化后的 JSON — 一键复制到剪贴板

使用它来阅读 API 响应、调试 JSON 数据、格式化配置文件以及在应用程序中使用之前验证 JSON 语法。