我有一个具有两个同级JSON对象的JSON,我希望有一个满足以下条件的架构:
如果类型== HARD_RULES或SOFT_RULES,则在进行模式验证时应将'referee'属性完全从object2中排除或删除,否则对object2是OTHERWISE'referee']
请注意,'referee'属性对于object2是强制性的。
{
{
//Object1
'required': ['host'],
'properties': {
'type': {
'enum': ['HARD_RULES', 'SOFT_RULES'],
'type': 'string'
},
'host': {
'type': 'string'
}
}
}, {
//Object2
'required': ['referee'],
'properties': {
'type': {
'enum': ['INDOOR'],
'type': 'string'
},
'referee': {
'type': 'string'
}
}
}
}
您需要将两个子方案包装在oneOf
数组中。
这意味着一个模式必须是有效的,不得超过一个,而不是一个。
您还需要为每个子模式添加additionalProperties: false
。
您几乎快要得到这个!