JSON模式 - 如何根据字段值有条件地引用JSON文件

时间:2017-11-17 11:13:42

标签: arrays json schema jsonschema

f

如果创建的操作比(" $ ref":"创建")json文件。

如果它的更新比($ ref - "更新")json文件

2 个答案:

答案 0 :(得分:2)

新版本的avro允许使用“ if” /“ then” /“ else”条件

答案 1 :(得分:1)

答案取决于您使用的草稿。

草案-04:

{
    "oneOf": [
        {
            "operation": {
                "type": "string",
                "enum": ["create"]
            },
            "payload": {"$ref": "create"}
        },
        {
            "operation": {
                "type": "string",
                "enum": ["update"]
            },
            "payload": {"$ref": "update"}
        }
    ]
}

draft-06(注意"const"代替单元素"enum"):

{
    "oneOf": [
        {
            "operation": {
                "type": "string",
                "const": "create"
            },
            "payload": {"$ref": "create"}
        },
        {
            "operation": {
                "type": "string",
                "const": "update"
            },
            "payload": {"$ref": "update"}
        }
    ]
}

draft-07(周一发布,尚未真正实施)介绍了"if" / "then" / "else",它提供了其他几种方法来做同样的事情。但我认为"oneOf"在这种情况下非常清楚。