如何在协议缓冲区中实现映射列表?

Nit*_*ant 4 protocol-buffers

我正在寻找创建一个返回地图列表的 gRPC 响应。这是我想象的结构:

message GetSettingsResponse {
    repeated map<string, string> settings = 1;
}
Run Code Online (Sandbox Code Playgroud)

但是,不支持重复映射,我必须将映射嵌套在单独的消息中才能使其工作:

message GetSettingsResponse {
    repeated Setting settings = 1;
}

message Setting {
    map<string, string> setting = 1;
}
Run Code Online (Sandbox Code Playgroud)

这有效,但它迫使我们在客户端和服务器上编写一些令人困惑的代码。有什么办法可以避免这种解决方案并更接近我想要的结构吗?

Mar*_*ell 5

不,基本上。您拥有的是在 protobuf 中可以做的最接近的事情。