Разрешение перечисления быть нулевым в схеме Avro - PullRequest
0 голосов
/ 08 октября 2018

В моей схеме 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}, это работает.Как я могу сделать поле enum необязательным?

1 Ответ

0 голосов
/ 08 октября 2018

Для JSON-кодирования Avro вам необходимо передать предполагаемый тип для каждого ненулевого значения объединения.

{"myenum": {"string": "HEARTS"}}

должно помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...