Javascript 条件JSON子模式

Javascript 条件JSON子模式,javascript,arrays,json,if-statement,Javascript,Arrays,Json,If Statement,我试图在JSON中使用if-then-else语句,但目前还没有成功 { "type": "object", "minProperties": 2, "maxProperties": 2, "properties": { "human": { "enum": [ "Kids", "Adults" ] } }, "if": { "properties": { "human":

我试图在JSON中使用if-then-else语句,但目前还没有成功

{
"type": "object",
"minProperties": 2,
"maxProperties": 2,
"properties": {
    "human": {
        "enum": [
            "Kids",
            "Adults"
        ]
    }
},

"if": {
    "properties": {
        "human": {
            "const": "Adults"
        }
    }
},
"then": {
    "properties": {
        "shoe_size": {
            "type": "number",
            "minimum": 7,
            "maximum": 11
        }
    },
    "else": {
        "properties": {
            "shoe_size": {
                "type": "number",
                "minimum": 2,
                "maximum": 6
            }
        }
    }
},
"required": [
    "shoe_size",
    "human"
]
}
因此,我应该得到如下结果:

{
 "human": "Adults",
 "shoe_size": 10
 }
为什么鞋子尺寸的值没有限定到我分配给它的最小值/最大值


谢谢您的帮助。

我认为您有嵌套错误,
否则
必须与
处于同一级别,如果

{
“类型”:“对象”,
"物业":二,,
“maxProperties”:2,
“财产”:{
“人”:{
“枚举”:[
“孩子们”,
“成年人”
]
}
},
“如果”:{
“财产”:{
“人”:{
“const”:“成年人”
}
}
},
“然后”:{
“财产”:{
“鞋号”:{
“类型”:“编号”,
“最低限度”:7,
“最高限额”:11
}
}
},
“其他”:{
“财产”:{
“鞋号”:{
“类型”:“编号”,
“最低限度”:2,
“最高限额”:6
}
}
},
“必需”:[
“鞋号”,
“人类”
]

}
谢谢你的回答!我通过在上生成有效负载来测试JSON模式,它仍然为shoe_size键提供所有类型的值类型(布尔值、字符串、数字、null)。您是否认为该工具不是为draft-v7设计的,或者代码仍然有问题?我不知道这个库,但不知道,似乎没有:and(draft-v4)