考虑一下,如果我有一个数组,看起来像下面的例子。
{
"id": 1,
"published": true,
"available": false
},
{
"id": 2,
"published": false,
"available": true
}
数组中可以有很多项,比如说最多可以有10项。我需要分别检查所有的项目是否有 published
和 available
. JSON验证应该检查所有的项目和。PASS 如果数组中的任何一个项目有 true
价值 published
至少一次 AND true
价值 available
至少也有一次。它可以是在同一个项目或不同的项目。如果这些属性中的任何一个没有被验证,验证就会失败。true
甚至在任何一个数组项中都有一次。有什么办法可以让我做到这一点?
anyOF:检查其中一项属性并通过验证。
所有: 检查每一个实例,如果是false,则不通过验证(即使是key,也需要通过)。true
一次)。)
包含在验证中只能使用一次,并且最终会在一个项目中检查两个键是否为真。有什么建议可以解决这个问题,真的很有帮助!谢谢。
你当然可以多次使用 "包含"--只要把它放在 "allOf "或 "anyOf "里面。 那么,像这样吗?
{
"type": "array",
"items": {
"type": "object"
},
"allOf": [
{
"contains": {
"properties": {
"published": { "const": true }
}
},
{
"contains": {
"properties": {
"available": { "const": true }
}
}
}
]
}