代码之家  ›  专栏  ›  技术社区  ›  kamm92

Json模式-需要基于同一嵌套对象中的字段值的字段

  •  0
  • kamm92  · 技术社区  · 4 年前

    {
    "field1":"aaa",
    "field2":"bbb"
    "field3":{ 
       "isTrue":true,
       "inner1":"1",
       "inner2":"1"
        }
    }
    

    所以对于上面的Json,如果field isTrue为true,我可以只需要inner1和inner2字段吗?

    "field3": {
                                    "type": "object",
                                    "properties": {
                                        "isTrue": {
                                            "type": 
                                                "boolean"
                                        },
                                        "inner1": {
                                            "type": 
                                                "integer"
                                        },
                                        "inner2": {
                                            "type": 
                                                "string"
                                        }
                                    },
                                    "anyOf": [
                                        {
                                            "properties": {
                                                "isTrue": {
                                                    "const": "true"
                                                }
                                            },
                                            "required": [
                                                "inner1",
                                                "inner2"
                                            ]
                                        },
                                        {
                                            "properties": {
                                                "isTrue": {
                                                    "const": "false"
                                                }
                                            },
                                            "required": [
                                                "isTrue"
                                            ]
                                        }
                                    ]
    
                                }
    

    以上是我的Json模式

    0 回复  |  直到 4 年前
        1
  •  1
  •   Ether    4 年前

    如果去掉引号,您的模式应该可以工作 "true" "false" --它们被视为弦,而不是布尔。

    (另外,您的数据对inner1和inner2都使用字符串,但是架构希望其中的第一个字符串是整数——可能是转录错误。)