什么是 JSON Schema?
JSON Schema 是一种词汇表,允许您注释和验证 JSON 文档。它描述 JSON 数据的结构、约束和文档,支持自动验证和文档生成。
快速了解
| 全称 | JSON Schema 规范 |
|---|---|
| 创建时间 | 2009 年(首个草案) |
| 规范文档 | 官方规范 |
JSON Schema 工作原理
JSON Schema 为给定应用程序所需的 JSON 数据以及如何与之交互提供了契约。它可以验证数据类型、必需属性、字符串模式、数值范围、数组长度等。JSON Schema 本身用 JSON 编写,易于理解和生成。它支持 $ref 用于可重用定义、allOf/anyOf/oneOf 用于组合,以及 if/then/else 用于条件验证。JSON Schema 广泛用于 API 文档(OpenAPI)、配置验证和表单生成。
主要特点
- 用 JSON 格式编写
- 验证数据类型、格式和约束
- 支持 $ref 用于可重用定义
- 使用 allOf、anyOf、oneOf 进行组合
- 使用 if/then/else 进行条件验证
- 用于 OpenAPI/Swagger 规范
常见用途
- API 请求/响应验证
- 配置文件验证
- 表单生成和验证
- 文档生成
- 数据交换契约
示例
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"email": {
"type": "string",
"format": "email"
},
"age": {
"type": "integer",
"minimum": 0,
"maximum": 150
},
"tags": {
"type": "array",
"items": { "type": "string" },
"uniqueItems": true
}
},
"required": ["id", "name", "email"],
"additionalProperties": false
}