首页 > 解决方案 > Avro 枚举字段

问题描述

我正在尝试在 Avro 模式中创建 Union 字段并使用它发送相应的 JSON 消息,但要拥有其中一个字段 - null

https://avro.apache.org/docs/1.8.2/spec.html#Unions

具有相应 JSON 数据的最简单 UNION 类型(avro 模式)的示例是什么?(试图做一个没有空/空数据的例子和一个空/空数据的例子)。

标签: nullavro

解决方案


这里有一个例子。

空枚举

{"name": "Stephanie", "age": 30, "sex": "female", "myenum": null}

非空枚举

{"name": "Stephanie", "age": 30, "sex": "female", "myenum": "HEARTS"}

架构

{
    "type": "record",
    "name": "Test",
    "namespace": "com.acme",
    "fields": [{
            "name": "name",
            "type": "string"
        }, {
            "name": "age",
            "type": "int"
        }, {
            "name": "sex",
            "type": "string"
        }, {
            "name": "myenum",
            "type": ["null", {
                    "type": "enum",
                    "name": "Suit",
                    "symbols": ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]
                }
            ]
        }
    ]
}

推荐阅读