繁体   English   中英

Ajv 库:访问嵌套模式验证中的键 javascript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM