文章目录
- [什么是json schema(模式)用 JSON 格式描述 JSON 数据结构和约束的规范](#什么是json schema(模式)用 JSON 格式描述 JSON 数据结构和约束的规范)
- [常见的 JSON Schema 关键字有:](#常见的 JSON Schema 关键字有:)
-
- items
- anyof/pattern
- [ref 和 defs 是定义公共模块](#ref 和 defs 是定义公共模块)
什么是json schema(模式)用 JSON 格式描述 JSON 数据结构和约束的规范
JSON Schema 是一种用 JSON 格式描述 JSON 数据结构和约束的规范。
给 JSON 数据写的"规则说明书",用来规定:
这份 JSON 里应该有哪些字段、字段是什么类型、哪些字段必填、字段值有什么限制。



常见的 JSON Schema 关键字有:
| 关键字 | 含义 |
|---|---|
type |
数据类型,比如 object、array、string、number、integer、boolean |
properties |
对象里有哪些字段 |
required |
哪些字段必须存在 |
items |
数组里的元素结构 |
enum |
字段值只能从指定范围里选 |
minimum / maximum |
数字范围 |
minLength / maxLength |
字符串长度限制 |
additionalProperties: false |
不允许出现 properties 之外的字段 |
anyOf |
满足多个 schema 中任意一个 |
pattern |
用正则约束字符串格式,JSON 字符串里的正则 |



items










anyof/pattern



ref 和 defs 是定义公共模块
$defs 用来定义可复用的 schema 模块;
$ref 用来引用这些模块;
递归结构就是在模块内部再 $ref 自己。













