基本上,我试图查看是否可以编写一个接受数组数组的模式,这样所有内部数组的长度都相同。例如,架构应接受以下内容:
[[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 Schema可以执行此操作吗?如果可以,请执行此操作?
答案 0 :(得分:4)
您可以使用items
,maxItems
和minItems
关键字强制执行嵌套数组的指定长度:
{
"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
}
]
}
}