根据嵌套字段的值需要JSON架构字段 [英] json schema field required based on value of nested field
本文介绍了根据嵌套字段的值需要JSON架构字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已尝试JSON Schema - specify field is required based on value of another field,但在以下情况下不起作用。
实例1
{
"part1": {
"subPartA" : {
"value": "X"
}
},
"partX": {
"propXX": "val1",
"prop2": null
}
}
实例2
{
"part1": {
"subPartA" : {
"value": "Y"
}
},
"partY": {
"propYY": "val123",
"prop2": null
}
}
如何才能使
partX.propXX
如果part1.subPart1.value = "X"
则需要
和
partY.propYY
如果part1.subPart1.value = "Y"
则需要
?
推荐答案
除非您希望数据中的值成为必需的属性名称的一部分(使用json-SCHEMA关键字是不可能的),否则您可以执行此关联:
{
"type": "object",
"required": ["part1"],
"properties": {
"part1": {
"type": "object",
"required": ["subPartA"],
"properties": {
"subPartA": {
"type": "object",
"required": ["value"],
"properties": {
"value": {
"type": "string"
}
}
}
}
}
},
"anyOf": [
{
"required": ["partX"],
"properties": {
"part1": {
"properties": {
"subPartA": {
"properties": {
"value": {
"enum": ["X"]
}
}
}
}
},
"partX": {
"type": "object",
"required": ["propXX"],
"properties": {
"propXX": {
"type": "string"
}
}
}
}
},
{
"required": ["partY"],
"properties": {
"part1": {
"properties": {
"subPartA": {
"properties": {
"value": {
"enum": ["Y"]
}
}
}
}
},
"partY": {
"type": "object",
"required": ["propYY"],
"properties": {
"propYY": {
"type": "string"
}
}
}
}
}
]
}
这篇关于根据嵌套字段的值需要JSON架构字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文