如何使用Protocol Buffers对Map <String,Object>进行编码?

art*_*urh 14 java amqp protocol-buffers

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

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

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

有任何想法吗?

Jon*_*eet 10

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

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

听起来你所拥有的"非结构"水平可能不适合PB.

  • @artuh - 你最终用于什么问题? (2认同)
  • @FranzéJr.:鉴于您没有给出任何不同的要求,为什么您会期望不同的信息?协议缓冲区现在支持映射的概念,但不支持"通用消息" - 它必须是特定类型. (2认同)