Я использую Avro в C ++, используя общие объекты данных.
Предполагая, что схема такая же, как в примерах:
{
"type": "record",
"name": "cpx",
"fields" : [
{"name": "re", "type": "double"},
{"name": "im", "type" : "double"}
]
}
Я могу получить GenericRecord' and
GenericDatum` вот так:
const avro::GenericRecord& r = datum.value<avro::GenericRecord>();
const avro::GenericDatum& f0 = r.fieldAt(0);
std::string field0name = ???; // should be "re"
Как мне получить поле f0
имя, указанное в схеме? В этом примере он должен вернуть "re"
,
Сначала возьмите указатель на схему, а затем получите доступ к имени:
std::string field0name = r.schema()->nameAt(0);
Других решений пока нет …