在我的 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。获得了 VALUE_STRING
。
如果我用空值 {"myenum": null}
测试它,它会工作。如何使枚举字段成为可选字段?
最佳答案
对于 Avro 的 JSON 编码,您需要为每个非空联合值传递预期的类型。
{"myenum": {"string": "HEARTS"}}
应该可以为您解决问题。
关于json - 允许枚举在 Avro 模式中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52706315/