我们计划将现有服务转移到移动grpc服务。所以需要将服务转换为proto Defined Message Type。在响应中,我们将自定义对象的映射作为键。
例如回复:
//java
Map<key_object, Project>
//proto
map<key_object_not_supported, Project> projects = 3;
在官方文件中,他们提到了,
其中key_type可以是任何整数或字符串类型(因此,任何标量 除了浮点类型和字节之外的类型)。 value_type可以是 任何类型
是否可以在proto3中实现自定义对象键映射的其他方法?
答案 0 :(得分:3)
对地图的支持是一个相当新的扩展。如果您的密钥与约束条件不匹配,则可以使用旧方法:
定义密钥对消息并将其用作重复字段。所以,在你的例子中:
message KeyValuePair {
key_object_not_supported key = 1;
Project value = 2;
}
message MyMap {
repeated KeyValuePair entries = 1;
}