6

是否可以在没有任何 .proto 文件的情况下解析传入的谷歌协议缓冲区数据报?我现在只是使用协议缓冲区对其进行序列化,但不知道 IDL 文件。

我正在寻找一种通过某种反射来迭代任何值的方法?这可能吗?

谢谢!

4

1 回答 1

8

protoc --decode_raw < my_file

检查输出时需要考虑以下事项:

  • 没有任何字段名称可见,只有标签号。
  • 所有 varint-fields 都显示为整数。这对于大多数类型都可以,但 sint* 将以“锯齿形”格式出现。
  • 双精度和浮点数将显示为十六进制。
  • 字节、字符串字段和子消息看起来都一样,即只是一堆字节。

如果您想以编程方式解码消息,则可以在使用上述方法弄清楚字段的含义后编写自己的 .proto 文件。

于 2013-02-01T06:47:18.533 回答