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

Arrays JSON模式-如何根据字段值有条件地引用JSON文件,arrays,json,schema,jsonschema,Arrays,Json,Schema,Jsonschema,如果操作是创建(“$ref”:“create”)json文件 如果更新的不是($ref-“update”)json文件,则答案取决于您使用的草稿 草案-04: { "operation": { "type": "string", "enum": ["create","update"] }, "payload": { // I have to

如果操作是创建(“$ref”:“create”)json文件


如果更新的不是($ref-“update”)json文件,则答案取决于您使用的草稿

草案-04:

    {
        "operation": {
                       "type": "string",
                       "enum": ["create","update"]
         },
        "payload": {
    // I have to add json file refs: based on the value of operation(create,update)
        }
    }
草案-06(注意用
“const”
代替一个元素
“enum”
s):


草案-07(于周一发布,尚未真正实施)引入了
“如果”
/
“那么”
/
“else”
,它提供了几种其他方法来做同样的事情。但我认为,在这种情况下,“其中一个”是非常清楚的。

答案取决于您使用的草稿

草案-04:

    {
        "operation": {
                       "type": "string",
                       "enum": ["create","update"]
         },
        "payload": {
    // I have to add json file refs: based on the value of operation(create,update)
        }
    }
草案-06(注意用
“const”
代替一个元素
“enum”
s):


草案-07(于周一发布,尚未真正实施)引入了
“如果”
/
“那么”
/
“else”
,它提供了几种其他方法来做同样的事情。但是,我认为,在这种情况下,“其中一个”非常清楚。

新版本的avro允许“如果”/“那么”/“其他”条件

新版本的avro允许“如果”/“那么”/“其他”条件

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