JSON Schema 校验入门:用模式约束接口数据

什么是 JSON Schema,如何用它校验 API 返回的 JSON 是否合法,附可复制的 draft-07 示例。

目录

什么是 JSON Schema

JSON Schema 是一份描述 JSON 数据「应该长什么样」的 JSON 文档,常见版本为 draft-07。它用 typerequiredpropertiesenum 等关键字声明字段类型与约束,常用来校验接口请求/响应、配置文件是否合规。

写一个最小 Schema

下面这段 schema 要求对象必须包含 name(字符串)和 age(非负整数),role 只能是 user/admin:

在 ToolBox 中校验

打开 JSON Schema 校验器,左侧粘贴数据、右侧粘贴 schema,点击校验即可看到逐字段结果。把示例数据故意改成 "age": -3 会立即报「minimum」错误。

常见校验错误

type mismatch:字段类型不符;required:缺少必填字段;enum:值不在允许集合;additionalProperties:出现了 schema 未声明的字段(可设为 false 严格校验)。

常见问题

JSON Schema 能校验数组吗?
能。用 "type":"array" 配合 "items" 描述每个元素的 schema,还可加 "minItems"/"maxItems" 限制长度。
draft-07 和 2020-12 有什么区别?
语法大体兼容,2020-12 引入了 $defs、dependentRequired 等更细的约束;多数业务用 draft-07 已足够。
前端能用 JSON Schema 校验吗?
可以。Ajv 等库能在浏览器内按 schema 校验表单与接口数据,ToolBox 的校验器适合快速调试与复制结果。
← 返回「JSON 与数据」内容集群