在AJV JSON schema中,我们可以通过$ data来引用JSON数据中的值。为了引用允许的最大字符数的值,我们可以将$ data.maximumLength用于校验器中的maxLength关键字。
以下是代码示例:
const ajv = new Ajv({ allErrors: true }); const schema = { type: "object", properties: { name: { type: "string", maxLength: { $data: "maxNameLength" } } } }; const validate = ajv.compile(schema);
const data = { name: "John Doe" }; const maxNameLength = data.name.length;
const valid = validate(data, { maxNameLength });
if (!valid) console.log(validate.errors);
在上述代码中,我们在校验器中使用了$ data来引用JSON数据中的值,以校验字符串属性的最大长度。我们还在校验函数中传递了maxNameLength值,以允许$ data关键字引用JSON数据中的maxNameLength值。如果验证失败,则将校验错误输出到控制台中。