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

时间:2018-08-07 17:52:15

标签: protocol-buffers

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

message GetSettingsResponse {
    repeated map<string, string> settings = 1;
}

但是,不支持重复地图,因此我不得不将地图嵌套在单独的消息中以使其起作用:

message GetSettingsResponse {
    repeated Setting settings = 1;
}

message Setting {
    map<string, string> setting = 1;
}

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

1 个答案:

答案 0 :(得分:3)

不,基本上。您拥有的是Protobuf中最接近的功能。