在我的Avro模式中,我有一个名为myenum
的字段enum
,如下所示:
{
"name": "myenum",
"type": {
"type": "enum",
"name": "Suit",
"symbols": ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]
}
}
我也希望允许null
。如果我将类型更改为默认值为null
的并集(如this post中的建议),则看起来像这样:
{
"name": "myenum",
"type": ["null", {
"type": "enum",
"name": "Suit",
"symbols": ["SPADES", "HEARTS", "DIAMONDS", "CLUBS"]
}]
}
当我使用以下JSON对象{"myenum":"HEARTS"}
测试它时,我收到一个错误-Expected start-union. Got VALUE_STRING
。
如果我使用空值{"myenum": null}
对其进行测试,那么它将起作用。如何使枚举字段为可选?
答案 0 :(得分:1)
对于Avro的JSON编码,您需要为每个非null联合值传递预期的类型。
{"myenum": {"string": "HEARTS"}}
应该为您解决问题。