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
            }
        ]
    }
}

我不这么认为。嗯,我为自己的代码实现了一个模式检查器,但我记不起有任何代码检查了:-)