我正在Google Cloud Platform PubSub上测试一个Avro模式定义。我已经将模式简化为:
{
"type": "record",
"name": "CloudEvent",
"fields": [
{
"name": "attribute",
"type": {
"type": "map",
"values": ["null", "boolean", "int", "string", "bytes"]
}
}
]
}
但是,我正在测试的JSON编码消息出现了“Message is invalid against schema”错误。
这是我发送的最简单的消息,意外地给出了错误:
{
"attribute": {
"test": "hello"
}
}
有趣的是,以下消息被认为是有效的:
{
"attribute": {}
}
这是意料之中的,但会使前面的消息错误更加令人困惑。
1条答案
按热度按时间iszxjhcz1#
请参阅Avro关于JSON编码的规范。具体来说,map具有可空值的事实意味着当它们确实具有值时,您需要以特定方式指定,例如: