JSON Schema 是什么?5 分钟入门
JSON Schema 是一份「描述 JSON 长什么样」的 JSON 文件。它用来约定字段类型、是否必填、嵌套结构,让前后端、校验器、文档都照同一份契约来。
为什么需要它
- 校验:运行时判断一份 JSON 是否符合预期(用 Ajv 等校验器)。
- 契约:前后端共享一份 schema,接口字段变动有依据。
- 文档:OpenAPI / 接口平台可直接用 schema 生成文档。
最小示例
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer" }
},
"required": ["name"]
}
含义:整体是一个对象;有 name(字符串)和 age(整数)两个字段;其中 name 必填,age 可选。
核心关键字
type:object/array/string/number/integer/boolean/null。properties:对象的字段定义(仅 object 用)。required:必填字段名数组。items:数组元素的定义(仅 array 用)。additionalProperties:是否允许出现未声明的字段。
它和 TypeScript 类型的关系
JSON Schema 描述「运行时数据契约」,TypeScript 类型描述「编译期变量形状」。两者互补:Schema 能校验真实请求,类型能在写代码时防错。想深入了解看 这篇对比。