簡體   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