我不确定这是否可以使用JSON模式,但我有类似这样的数据:
[1, 1, [0, 0, [true]], true]
如何验证[0,0,1]以使至少一个项为1 / true?
到目前为止,我已设法创建模式到这一点:
{
"type": "array",
"items": {
"$ref": "#/definitions/_items"
},
"definitions": {
"_items": {
"anyOf": [
{
"enum": [
0,
1
],
"type": "integer"
},
{
"enum": [
false,
true
],
"type": "boolean"
},
{
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/definitions/_items"
}
]
}
}
]
}
}
}
显然它确实验证了所有可接受的值,但是如果全部,一些,一个或没有值1 / true,则它不会考虑 . 我误解了,任何,全部和一个都为此保留......
1 回答
你需要的是
contains
关键字 . 计划在下一版本的JSON Schema规范中添加 . 在实现之前,您可以在没有contains
的情况下执行此操作,但逻辑有点复杂 . 我还清理了到目前为止你所拥有的一些不必要的东西 .