Arrays JSON模式能否描述一个数组数组必须具有所有相同长度的元素?
基本上,我想看看是否可以编写一个模式来接受数组数组,这样所有内部数组的长度都相同。例如,架构应接受以下内容:Arrays JSON模式能否描述一个数组数组必须具有所有相同长度的元素?,arrays,json,jsonschema,Arrays,Json,Jsonschema,基本上,我想看看是否可以编写一个模式来接受数组数组,这样所有内部数组的长度都相同。例如,架构应接受以下内容: [[1,2]、[3,4]、[5,6]] [[1]、[2]、[3]] [[1 2 3 4]] 但拒绝以下内容: [[1]、[2,3]、[4,5]] [[1 2 3 4 5],[6]] JSON模式可以做到这一点吗?如果可以,怎么做?您可以通过使用项、最大项和最小项关键字来强制嵌套数组具有给定的长度: { "type" : "array", "items" : {
[[1,2]、[3,4]、[5,6]]
[[1]、[2]、[3]]
[[1 2 3 4]]
但拒绝以下内容:
[[1]、[2,3]、[4,5]]
[[1 2 3 4 5],[6]]
JSON模式可以做到这一点吗?如果可以,怎么做?您可以通过使用
项
、最大项
和最小项
关键字来强制嵌套数组具有给定的长度:
{
"type" : "array",
"items" : {
"type" : "array",
"minItems" : 2,
"maxItems" : 2
}
}
虽然(通常)您不能强制所有嵌套数组具有相同数量的元素,但如果不是每个长度都可以,您可以使用oneOf
尝试暴力方法:
{
"type" : "array",
"items" : {
"oneOf" : [{
"type" : "array",
"minItems" = 1,
"maxItems" = 1
}, {
"type" : "array",
"minItems" = 2,
"maxItems" = 2
}
]
}
}
我不这么认为。嗯,我为自己的代码实现了一个模式检查器,但我记不起有任何代码检查了:-)