首页 > 解决方案 > JSON Schema验证draft-07中“minContains”和“maxContains”的解决方法?

问题描述

最新的 JSON 模式验证版本 (2019-09) 允许使用contains关键字放置条件(子模式),以及该条件可以使用minContainsmaxContains在 JSON 模式中出现的次数。此功能在 Draft-07 中不可用。有没有办法在不使用这些关键字的情况下实现这一目标?例如

"answers": [
    {
      "id": 1,
      "text": "choice1",
      "isCorrect": true
    },
    {
      "id": 1,
      "text": "choice2",
      "isCorrect": false
    },
    {
      "id": 1,
      "text": "choice3",
      "isCorrect": false
    },
    {
      "id": 1,
      "text": "choice4",
      "isCorrect": false
    }
  ]
}

包含如下的条件:

"contains":{
  "properties":{
    "isCorrect":{
      "enum":["true"]
     }
  }
}

这至少检查一次isCorrecttrue但是,如果我希望仅在值至少两倍时通过验证,isCorrecttrue该如何实现呢?任何帮助表示赞赏!谢谢。

标签: jsonvalidationcontainsjsonschemajson-schema-validator

解决方案


不,没有,这就是我们添加关键字的原因 draft 2019-09。对不起。


推荐阅读