JSON Schema 校验教程:type、required、properties、items、enum、长度和范围
一句话答案
JSON Schema 用一段 JSON 描述数据应有的结构:type 规定类型,required 列出必填字段,properties 定义每个字段的规则,minLength、minimum 等限制长度和范围。粘贴数据和 Schema 后点“校验”,工具会列出每一处不符合的地方。
JSON Schema 常用于接口文档、配置文件校验和表单数据检查,可以在数据进入系统前发现类型错误和缺失字段。
常用关键字
| 关键字 | 作用 | 示例 |
|---|---|---|
| type | 类型 | "string"、"integer"、"number"、"boolean"、"object"、"array"、"null" |
| required | 必填字段列表 | ["id", "name"] |
| properties | 对象各字段的规则 | {"id": {"type": "integer"}} |
| items | 数组元素的规则 | {"type": "string"} |
| enum | 只能取列出的值 | ["draft", "published"] |
| minLength / maxLength | 字符串长度 | "minLength": 1 |
| minimum / maximum | 数字范围 | "minimum": 0 |
| minItems / maxItems | 数组元素个数 | "minItems": 1 |
一个例子
Schema 要求:对象必须有 id 和 name 两个字段,id 是整数,name 是至少 1 个字符的字符串:
{"type":"object","required":["id","name"],"properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":1}}}
数据 {"id":"1","name":""} 有两处错误:
$.id:期望类型 integer,实际是 string("1" 加了引号就是字符串);$.name:不满足 minLength,空字符串长度为 0。
改成 {"id":1,"name":"Ada"} 就能通过校验。
在线校验
- 粘贴数据:打开 JSON Schema 校验,在 JSON 框里粘贴要检查的数据。
- 粘贴 Schema:在 Schema 框里粘贴规则。
- 点“校验”:下方列出每一处不符合的地方,包括字段路径和原因;全部符合时提示通过。

工具支持 Draft-07 风格的常用关键字子集(type、required、properties、items、enum、长度和范围等),不是完整的校验库,复杂的 $ref、allOf、pattern 等规则请用项目里的正式校验库。
✅ JSON Schema 校验
免费在线使用,文件和数据只在你的浏览器本地处理,无需注册。
小技巧
- 先用 JSON 格式化 确认数据和 Schema 本身都是合法 JSON;
- integer 和 number 不同:1.5 是 number 但不是 integer;
- 从数据生成代码类型定义见 JSON 转代码类型,取特定字段见 JSONPath。
常见问题
JSON Schema 是什么?
用 JSON 写成的结构说明,规定数据应有的类型、必填字段和取值范围,用来自动校验数据。
"1" 和 1 有什么区别?
加引号的 "1" 是字符串,不加引号的 1 是数字,Schema 要求 integer 时 "1" 会报错。
工具支持全部关键字吗?
支持常用关键字子集,不是完整的校验库,复杂规则请用正式的校验库。
数据会上传吗?
不会,校验完全在浏览器本地运行。