根据嵌套字段的值需要JSON架构字段 [英] json schema field required based on value of nested field

查看:0
本文介绍了根据嵌套字段的值需要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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆