一、基本结构
{
"$schema": "http://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer", "minimum": 0 },
"email": { "type": "string", "format": "email" },
"isActive": { "type": "boolean", "default": true }
},
"required": ["name", "email"]
}
二、常用关键词说明
|---------------------------|-------------------------------------------------------------|
| 关键词 | 说明 |
| type
| 数据类型(string, number, integer, boolean, object, array, null) |
| properties
| 对象中每个字段的定义 |
| required
| 指定哪些字段是必须的 |
| minimum
/ maximum
| 用于 number/integer 的值约束 |
| minLength
/ maxLength
| 字符串长度约束 |
| enum
| 指定取值范围 |
| pattern
| 正则表达式校验字符串 |
| format
| 格式校验(如 date-time、email、uri) |
| default
| 默认值(通常用于文档或生成工具) |
三、嵌套结构示例
{
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"username": { "type": "string" },
"roles": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["username"]
}
}
}
四、数组类型写法
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"value": { "type": "string" }
},
"required": ["id"]
}
}
五、枚举和正则校验
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["draft", "published", "archived"]
},
"phone": {
"type": "string",
"pattern": "^1[3-9]\\d{9}$"
}
}
}