如何在JSON模式中添加多个条件



我有下面的JSON模式

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"op": {
"type": "string",
"minLength": 1,
"enum": [
"add",
"remove",
"replace"
]
},
"path": {
"type": "string",
"minLength": 1,
"enum": [
"/name",
"/description",
"/prefix"
]
},
"value": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false,
"required": [
"op",
"path",
"value"
],
"minItems": 1,
"allOf": [
{
"if" : {
"properties": {
"path" : {
"const": "/name"
}
}
},
"then": {
"properties": {
"op": {
"const": "replace"
}
}
}
},
{
"if" : {
"properties": {
"path" : {
"const": "/description"
}
}
},
"then": {
"properties": {
"op": {
"const": "replace"
}
}
}
}
]
}
}

如上所述,我们可以看到,如果有名称和描述,那么op将被替换,对于路径前缀,我有所有的操作,即添加、删除和替换,但我希望对删除操作应用特殊条件就像如果path是xFix并且op是remove,那么所需的参数不应该包含值attribute,所以只有op和path。

我想你会想扭转这方面的逻辑。不包括";值";在";"必需";列表相反,添加一个条件,基本上说;如果op不是"remove",则value是必需的;。

{
"if" : {
"not": {
"properties": {
"op" : {
"const": "remove"
}
}
}
},
"then": {
"required": ["value"]
}
}

相关内容

  • 没有找到相关文章

最新更新