У меня есть требование, где мне нужно проанализировать json, в котором поле даты определено как long в схеме Avro. Я знаю, что в обычных JSON начальные нули не поддерживаются. Но Jackson JSON parser предоставляет возможность настроить поддержку ведущих нулей. В моем коде я использую Avro JsonDecoder , который внутренне использует Jackson JsonFactory. Поэтому я хотел бы знать, есть ли способ настроить Avro JsonDecoder для установки свойства ALLOW_NUMERIC_LEADING_ZEROS.
Пример Json Данные:
{ "date": 021019}
Часть схемы Avro для поля даты
{
"name": "date",
"size": 8,
"type": ["null", "long"],
"logicalType": "date",
"doc": "1"
}
Код, используемый для преобразования JSON в запись Avro generi c
JsonDecoder jsonDecoder = DecoderFactory.get().jsonDecoder(schema, jsonMessage);
DatumReader<GenericRecord> datumReader = new GenericDatumReader<GenericRecord>(schema);
GenericRecord avroRecord = datumReader.read(null, jsonDecoder);