在我的avro模式中,有一个字段叫做 myenum
类型 enum
具体如下:
{
"name": "myenum",
"type": {
"type": "enum",
"name": "Suit",
"symbols": ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]
}
}
我也想 null
被允许。如果我将类型更改为具有默认值的并集 null
(正如这篇文章所建议的),它看起来是这样的:
{
"name": "myenum",
"type": ["null", {
"type": "enum",
"name": "Suit",
"symbols": ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]
}]
}
当我用下面的json对象测试它时 {"myenum":"HEARTS"}
,我得到一个错误- Expected start-union. Got VALUE_STRING
.
如果我用空值测试它 {"myenum": null}
,它起作用了。如何使枚举字段成为可选字段?
1条答案
按热度按时间qcbq4gxm1#
对于avro的json编码,需要为每个非空union值传递所需的类型。
应该帮你搞定。