我使用通用数据对象在C ++中使用Avro。
假设架构与示例中的架构相同:
{
"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"
。
答案 0 :(得分:1)
首先获取模式指针,然后访问名称:
std::string field0name = r.schema()->nameAt(0);