基于对键中值的求反来创建Json模式依赖关系
我试图在上面的json结构中提供一个json模式,其条件如下 1有一个键eventType,它可以有1000个以上的值 2除事件类型外,还有4个其他相关属性 3我想写一个模式定义,其中 a如果事件类型为!=[x,y,z],然后包括所有4个 从属属性 b如果eventType=[x,y,z],则仅包括 作为依赖项的设备细节 我能用一个吗?我知道我们可以在3a中使用not键进行否定检查。但是我不能把这些点连起来。请帮忙指点一下 如果届时包括所有4个相关属性,您的意思是使它们成为必需属性,那么我可以想到这个基于草案07的解决方案: 如果eventType设置为x、y或z,则只有DeviceDetails是必需的。否则,其他一切都是错误的。我将让您自己替换这些占位符值: 我冒昧地将minProperties:1设置为DeviceDetails、appDetails和ClientDetails,因为我认为您更喜欢非空对象。如果没有必要,您可以安全地将其从模式中删除基于对键中值的求反来创建Json模式依赖关系,json,jsonschema,Json,Jsonschema,我试图在上面的json结构中提供一个json模式,其条件如下 1有一个键eventType,它可以有1000个以上的值 2除事件类型外,还有4个其他相关属性 3我想写一个模式定义,其中 a如果事件类型为!=[x,y,z],然后包括所有4个 从属属性 b如果eventType=[x,y,z],则仅包括 作为依赖项的设备细节 我能用一个吗?我知道我们可以在3a中使用not键进行否定检查。但是我不能把这些点连起来。请帮忙指点一下 如果届时包括所有4个相关属性,您的意思是使它们成为必需属性,那么我可以想
{
"eventType": "memory_exceeded",
"event_time": 1544423819843,
"clientDetails": {},
"appDetails": {},
"DeviceDetails": {}
}
{
"properties": {
"eventType": {
"type": "string"
},
"event_time": {
"type": "integer"
},
"ClientDetails": {
"type": "object",
"minProperties": 1
},
"appDetails": {
"type": "object",
"minProperties": 1
},
"DeviceDetails": {
"type": "object",
"minProperties": 1
}
},
"if": {
"properties": {
"eventType": {
"enum": [
"x",
"y",
"z"
]
}
}
},
"then": {
"required": [
"DeviceDetails"
]
},
"else": {
"required": [
"event_time",
"ClientDetails",
"appDetails",
"DeviceDetails"
]
}
}