获取Apache Avro的通用记录字段的名称?

时间:2015-09-29 15:36:15

标签: c++ avro

我使用通用数据对象在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"

1 个答案:

答案 0 :(得分:1)

首先获取模式指针,然后访问名称:

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