[英]Ajv library: Accessing keys in the nested schema validation javascript
我正在研究需要使用可以嵌套的所提供数据的ajv
库来验证模式的用例。
现在的问题是,Schema 可能会根据特定变量的值而更改,而该变量不在要进行此检查的 scope 中。
我如何通过ajv实现它。
我尝试使用if-else
& data & const
但没有成功。
我最近遇到了与ajv
验证器类似的用例。 通过查看您的问题,我相信您需要访问通过验证的实际 object 中的其他一些 scope,在我的情况下,它位于 object 的根目录中。
所以我在 ajv 的用户定义关键字部分使用了validate
function,这反过来在 arguments 本身的第一个索引中从顶层给我整个 object,这样我在validate
function 中访问了我的依赖键并在我的 ajv IF:
中使用它IF:
条件,例如
ajv.addKeyword({
keyword: "isRegular",
validate: (...test) => {
const test1 = test[1]
return test1.dependentKeyFromRootOfObject === "REGULAR"
},
})
并在嵌套对象的IF:
条件中使用了当时创建的关键字isRegular
if: { isRegular: true },
then: {
properties: {
rcType: { type: "string" },
date: { type: "string" },
},
required: ["rcType", "date"],
additionalProperties: false,
},
else: {
properties: {
rcType: { type: "string" },
},
required: ["rcType"],
additionalProperties: false,
},
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.