2
我想解析一个非常大的消息(大约25个字段)并将它们序列化。消息中的字段始终以相同的顺序出现,并且在原始文件中我相应地对它们进行了编号。有没有一种方法来设置标签值(proto文件中的数字)的字段?谷歌协议缓冲区
谢谢, Chem。
我想解析一个非常大的消息(大约25个字段)并将它们序列化。消息中的字段始终以相同的顺序出现,并且在原始文件中我相应地对它们进行了编号。有没有一种方法来设置标签值(proto文件中的数字)的字段?谷歌协议缓冲区
谢谢, Chem。
google::protobuf::Message myMessage;
const google::protobuf::Descriptor * myDescriptor = myMessage.GetDescriptor();
const google::protobuf::FieldDescriptor * myField = myDescriptor->FindFieldByNumber(9001);
const google::protobuf::Reflection * myReflection = myMessage.GetReflection();
myReflection->SetInt32(&myMessage, myField, 7);
很明显,您需要更改字段号,字段类型以及要设置的值。
非常感谢。我在API中找到了FieldDescriptor.findFieldByNumber(),但无法连接其他点。 – Drew
“有没有一种方法”......好吧,你使用的是什么实现,对于初学者来说 - 从内存来看,有40种不同的实现/工具 –
现在我正在比较相应的名称并设置值,就像代码中的很多IF条件。我想摆脱他们。 – Drew
btw我正在做它在java – Drew