AJV(Another JSON Schema Validator)是一款基于JSON Schema的数据校验工具库。‘not’关键字用于对某个规则做反向校验,即检查输入的数据不符合该规则。下面是一个包含‘not’关键字的JSON Schema示例:
{
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "number"}
},
"not": {
"required": ["name"]
}
}
上述示例规定了对象必须包含“age”属性,但不能有“name”属性。使用AJV进行校验:
const AJV = require('ajv');
const ajv = new AJV();
const schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "number"}
},
"not": {
"required": ["name"]
}
};
const validate = ajv.compile(schema);
const data1 = {name: "Tom", age: 20}; // false
const data2 = {age: 20}; // true
console.log(validate(data1));
console.log(validate(data2));
输出结果:
false
true
‘not’关键字使用方法简单,但在实际场景中可能会遇到一些特殊情况,需要注意一下:
下一篇:AJV总是返回true