5

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

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

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

4

1 回答 1

3

如果您发布了我们可以告诉您的原始二进制数据 - 或者您可以查看协议缓冲区编码文档。如果您看到连线类型为 3 的字段,则表示一个组。

我对 UnknownFieldSet API 没有我应该熟悉的那样熟悉,但听起来确实像是在与一个小组打交道。

另一方面,我希望组的大部分使用都是 Google 内部的——这些数据是从哪里来的?诚然,没有什么可以阻止人们使用已弃用的组格式而不是嵌入式消息,但我希望很少有人这样做......

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

于 2010-01-03T16:13:06.153 回答