如何在没有定义的情况下获得Google Protobuf消息的结构

时间:2010-01-03 16:06:35

标签: java data-structures protocol-buffers

我必须在没有消息定义的情况下将protobuf消息的消息结构传送给我。使用UnknownFieldSet方法,我能够获得消息的字符串表示,如下所示:

1: "a"
2: {
   3:"b"
   4:"c"
}

字段2代表什么数据结构?使用UnknownFieldSet.Field.getGroupList我能够获得字段3和4的内容,这是否意味着字段2具有“已弃用”的组结构?

1 个答案:

答案 0 :(得分:3)

如果您发布了我们可以告诉您的原始二进制数据 - 或者您可以查看protocol buffer encoding documentation。如果您看到线类型为3的字段,则表示组。

我对UnknownFieldSet API并不熟悉,但听起来好像你正在处理一个群组。

另一方面,我预计群组的大部分用途都是谷歌的内部 - 这些数据来自哪里?无可否认,阻止人们使用已弃用的群组格式而不是嵌入式消息,但我希望希望少数人这样做...

有什么理由你不能要求涉及的.proto文件?虽然某些信息当然可以从协议缓冲区中收集而没有它们的定义,但它们的确设计用于两端知道消息格式的情况 - 尽管可能不同版本