Получить имя для общего поля записи Apache Avro?

Я использую Avro в C ++, используя общие объекты данных.

Предполагая, что схема такая же, как в примерах:

{
"type": "record",
"name": "cpx",
"fields" : [
{"name": "re", "type": "double"},
{"name": "im", "type" : "double"}
]
}

Я могу получить GenericRecord' andGenericDatum` вот так:

const avro::GenericRecord& r = datum.value<avro::GenericRecord>();
const avro::GenericDatum& f0 = r.fieldAt(0);
std::string field0name = ???; // should be "re"

Как мне получить поле f0имя, указанное в схеме? В этом примере он должен вернуть "re",

0

Решение

Сначала возьмите указатель на схему, а затем получите доступ к имени:

std::string field0name = r.schema()->nameAt(0);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]