Proto3 支持 oneof 功能,您可以在其中拥有包含多个字段的消息,并且最多可以同时设置一个字段。
由于一次将设置一个字段,因此在原型模式中具有重复的字段名称是合理的。问题是 proto 生成器将其视为重新定义。
我想这样做是因为在我的情况下,这使得 json 序列化JsonFormat
变得简单。
例如,我可能喜欢
message MyResponse {
int32 a = 1;
string b = 2;
oneof Properties {
PropertiesType1 properties = 3;
PropertiesType2 properties = 4;
PropertiesType3 properties = 5;
PropertiesType4 properties = 6;
}
}
有没有办法解决这个问题,还是必须努力重新定义原型?一个可能的解决方法可能是例如使用map<string, Properties> properties = 9;