第八章

JSON Schema 验证

验证 JSON 数据的结构和类型

什么是 JSON Schema?

JSON Schema 是一种声明性的格式,用于验证 JSON 数据的结构、类型和约束。 它就像 JSON 数据的"蓝图"或"规则书"。

💡 用途:API 验证、配置文件检查、数据格式化、自动生成文档

Schema 示例

定义一个用户对象的 Schema:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 50
    },
    "age": {
      "type": "integer",
      "minimum": 0,
      "maximum": 150
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": ["name", "age"],
  "additionalProperties": false
}

✅ 有效数据

{"name": "张三", "age": 30, "email": "[email protected]"}

❌ 无效数据

{"name": "李四"} (缺少 age)

常用关键字

类型约束

  • type : 数据类型
  • enum : 枚举值

数值约束

  • minimum/maximum : 最值
  • exclusiveMinimum : 严格大于

字符串约束

  • minLength/maxLength : 长度
  • pattern : 正则表达式
  • format : 预定义格式

数组约束

  • items : 元素类型
  • minItems/maxItems : 数量
  • uniqueItems : 唯一性