Protocol buffers 如何获取protobuf消息中的所有字段?

Protocol buffers 如何获取protobuf消息中的所有字段?,protocol-buffers,Protocol Buffers,这些天我在使用protobuf,我遇到了一个问题。 我想获取protobuf消息中的所有字段,并且我知道一种方法,使用field\u count()获取消息的字段计数,然后使用函数FindFieldByNumber()获取所有字段。但是,如果消息的字段号不连续,例如: message MyPb { uint32 id =1; int32 score =2; string name =5; uint32 high =6; } 然后,MyPb的字段计数是4,我使用 fo

这些天我在使用protobuf,我遇到了一个问题。 我想获取protobuf消息中的所有字段,并且我知道一种方法,使用
field\u count()
获取消息的字段计数,然后使用函数
FindFieldByNumber()
获取所有字段。但是,如果消息的字段号不连续,例如:

message MyPb
{
uint32    id   =1;
int32 score    =2;
string name    =5;
uint32  high   =6;
}
然后,MyPb的字段计数是4,我使用

for(int i=1; i<=count; ++i)
{
    descriptor->FindFieldByNumber(i);
}
for(int i=1;iFindFieldByNumber(i);
}
其中count=4

使用此方法,是否可以获取字段
名称
? 如果没有,有人知道更好的方法吗?
非常感谢。

您可以使用
描述符->字段(i)
而不是FindFieldByNumber()。请检查。

非常感谢,您的回答解决了我的问题。