Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Protocol buffers 如何在协议缓冲区中实现映射列表?_Protocol Buffers - Fatal编程技术网

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

Protocol buffers 如何在协议缓冲区中实现映射列表?,protocol-buffers,Protocol Buffers,我希望创建一个gRPC响应,返回地图列表。以下是我想象的结构: message GetSettingsResponse { repeated map<string, string> settings = 1; } 消息获取设置响应{ 重复地图设置=1; } 但是,不支持重复映射,我必须将映射嵌套在单独的消息中以使其工作: message GetSettingsResponse { repeated Setting settings = 1; } message

我希望创建一个gRPC响应,返回地图列表。以下是我想象的结构:

message GetSettingsResponse {
    repeated map<string, string> settings = 1;
}
消息获取设置响应{
重复地图设置=1;
}
但是,不支持重复映射,我必须将映射嵌套在单独的消息中以使其工作:

message GetSettingsResponse {
    repeated Setting settings = 1;
}

message Setting {
    map<string, string> setting = 1;
}
消息获取设置响应{
重复设置=1;
}
消息设置{
地图设置=1;
}

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

基本上没有。你所拥有的是你在protobuf中能做的最接近的