如何使用Protocol Buffers对Map 进行编码?

我正在尝试使用Protocol Buffers进行消息序列化。

我的消息格式应该包含Map 条目……但是如何编写.proto定义?

据我所知,Protocol Buffers没有内置Map类型。 我可以使用重复字段来模拟它。 但我遇到的最大问题是,您需要定义所有类型。 我希望我的信息灵活,所以我不能指定类型。

有任何想法吗?

我用一个键和一个值建模一个元组(这个值可能是每个类型一个值字段)。 然后只需要重复列出该元组类型。 您需要在代码中构建地图本身。

当你说你不能指定类型时 – 你在谈论什么类型的? 如果元组中有每个类型的可选字段,则可以处理所有基元 – 您可以通过将消息序列化为字节字符串映射消息。

听起来你所拥有的“非结构”水平可能不适合PB。