{
"eventType": "memory_exceeded",
"event_time": 1544423819843,
"clientDetails": {},
"appDetails": {},
"DeviceDetails": {}
}
我试图在上面的json结构中使用具有以下条件的json模式 .
1)有一个关键的“eventType”,它可以有1000个值 .
2)还有4个其他依赖属性以及event_type .
3)我想写一个架构定义在哪里
a)如果“eventType”!= [“x”,“y”,“z”],则包括所有4个相关属性 . b)如果“eventType”= [“x”,“y”,“z”],则仅包括“DeviceDetails”作为依赖 .
我可以使用OneOf吗?我知道我们可以在3a中使用“not”键进行否定检查 . 但我无法加入这些点 . 请帮助指点 .
1 回答
如果通过"then include all the 4 dependent properties"表示将它们作为必需的属性,那么我可以想到这个基于draft-07的解决方案:
如果
eventType
设置为"x","y"或"z",则只有DeviceDetails是必需的 . 否则一切都是 . (我会让你自己替换这些占位符值:)我冒昧地将
minProperties: 1
设置为DeviceDetails
,appDetails
和ClientDetails
,因为我认为你没有必要安全地从模式中删除它 .