第 1 课

什么是 JSON Schema

Schema 为什么存在、能校验什么,以及它在现代 JSON 工作流中的位置。

JSON Schema 是一种用于描述 JSON 数据形状的词汇。一个 schema 可以说明某个值必须是对象、对象必须包含 name 字段、tags 必须是字符串数组,或者某个标识符应该符合 UUID 格式。

它的意义不只是文档。Schema 可以被校验器、编辑器、CI 检查、API 网关和测试 fixture 使用。

Schema 描述什么

最简单的 schema 回答三个问题:

  • 允许什么 JSON 类型?
  • 哪些字段可以或必须存在?
  • 每个值需要满足哪些约束?
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": { "type": "string", "format": "uuid" },
    "name": { "type": "string" }
  },
  "required": ["id", "name"]
}

这个 schema 校验的是结构,而不是业务真实性。它可以要求 id 存在,但不能证明这个 id 一定存在于数据库中,除非你的应用继续做查询。

Schema 适合哪些场景

  • 请求与响应载荷
  • 配置文件
  • 消息队列与事件流
  • 测试 fixture
  • 脚本或 AI 系统生成的数据

Schema 不能替代什么

Schema 不能替代 JSON 解析、领域校验、权限检查或数据库约束。它位于系统边界:把原始 JSON 变成程序愿意信任的数据之前,先做结构校验。

好的 schema 最迷人的地方是“无聊”:它让无效数据尽早失败,避免问题一路流进生产环境。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览