【发布时间】:2014-12-29 11:55:47
【问题描述】:
我有一条动态的protobuf 消息,但我不知道该消息包含哪些字段。
我要做的是,把所有字段的所有值都放到一个字符串中,例如消息包含string name = "Jack";和int age = 12;两个字段,我想要的最终结果是"name:Jack, age:12"。
这是我的想法,由于我不知道这条消息中包含哪些字段,所以我需要遍历消息获取所有字段的名称、类型(可以通过Descriptor访问),然后获取每个字段的值,这是最烦人的部分,因为我需要写很长的
switch (type) {
case TYPE_UINT32:
//call get_uint32
break;
case TYPE_UINT64:
//call get_uint64
break;
......
}
我想知道有没有其他更好的办法来做到这一点?
【问题讨论】:
标签: c++ protocol-buffers