🔍

首页 › 使用教程 › 开发与效率

JSON Schema 校验教程:type、required、properties、items、enum、长度和范围

发布于 · 阅读约 3 分钟 · 用到的工具:JSON Schema 校验

一句话答案

JSON Schema 用一段 JSON 描述数据应有的结构:type 规定类型,required 列出必填字段,properties 定义每个字段的规则,minLength、minimum 等限制长度和范围。粘贴数据和 Schema 后点“校验”,工具会列出每一处不符合的地方。

本文目录
  1. 常用关键字
  2. 一个例子
  3. 在线校验
  4. 小技巧
  5. 常见问题

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":""} 有两处错误:

  1. $.id:期望类型 integer,实际是 string("1" 加了引号就是字符串);
  2. $.name:不满足 minLength,空字符串长度为 0。

改成 {"id":1,"name":"Ada"} 就能通过校验。

在线校验

  1. 粘贴数据:打开 JSON Schema 校验,在 JSON 框里粘贴要检查的数据。
  2. 粘贴 Schema:在 Schema 框里粘贴规则。
  3. 点“校验”:下方列出每一处不符合的地方,包括字段路径和原因;全部符合时提示通过。
数据有 2 处错误:id 类型不对、name 为空
数据有 2 处错误:id 类型不对、name 为空

工具支持 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" 会报错。

工具支持全部关键字吗?

支持常用关键字子集,不是完整的校验库,复杂规则请用正式的校验库。

数据会上传吗?

不会,校验完全在浏览器本地运行。