15

我正在尝试使用协议缓冲区进行消息序列化。

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

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

有任何想法吗?

4

1 回答 1

10

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

当你说你不能指定类型时——你在说什么类型?如果您在元组中具有每种类型的可选字段,那么这将适用于所有原语 - 您可以通过将消息序列化为字节字符串来映射消息。

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

于 2009-07-09T10:09:30.363 回答