编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / JSON Schema

JSON Schema

JSON Schema 是一套用来描述并校验 JSON 数据结构的规范,它本身也是用 JSON 写成的一份文档。你用它声明数据「该长什么样」,校验器再拿它去检查一份实际的 JSON 是否合规。常见约束包括:

它主要用于接口参数校验、配置文件检查,也能反向生成文档、表单或代码。使用时要注意两点:一是 JSON Schema 有多个版本(draft-07、2019-09、2020-12 等),不同草案的关键字略有差异,应在 $schema 里声明所用版本;二是对象默认允许出现未定义的额外字段,想禁止得显式写 "additionalProperties": false。它是一份「校验规则」,别和 JSON 数据本身、或 OpenAPI、JSON-LD 混为一谈。

常见问题

JSON Schema 和 JSON 是一回事吗?
不是。JSON 是数据格式,JSON Schema 则是描述「这份 JSON 该符合什么规则」的校验规范。只不过 JSON Schema 文档本身也是用 JSON 语法写的,容易让人混淆。
为什么我把 required 写在字段里不生效?
因为 required 是对象级别的一个字符串数组,和 properties 平级,用来列出哪些字段必填,如 "required": ["id", "name"]。把它写进某个字段内部是无效的。
为什么 schema 没拦住多出来的字段?
因为对象默认允许额外属性。若只想接受已声明的字段,需要在该对象上显式加 "additionalProperties": false。

相关工具

相关名词