Javascript 条件JSON子模式
我试图在JSON中使用if-then-else语句,但目前还没有成功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":
{
"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)