2013-01-31 64 views
5

是否有可能解析傳入的谷歌協議緩衝區數據報沒有任何.proto文件?我現在只是使用協議緩衝區對其進行了序列化,但不知道IDL文件。解析Google協議緩衝區數據報沒有.proto文件?

我正在尋找一種方式來迭代通過某種反射的任何值?這可能嗎?

謝謝!

+2

你可以用'protoc'檢查現有消息的結構,但它會在很大程度上猜測,你可以用它來*手動構建*的模式。沒有模式,格式不明確。 –

回答

5

protoc --decode_raw < my_file

您需要檢查輸出時考慮以下幾點考慮:

  • 的字段名稱都不是可見的,只是標籤號碼。
  • 所有varint字段都顯示爲整數。這對大多數類型都是可以的,但sint *會以「zigzagged」格式顯示。
  • 雙打和浮動將顯示爲十六進制。
  • 字節,字符串字段和子消息都顯示相同,即只是一堆字節。

如果你想以編程方式解碼消息,你可以編寫自己的.proto文件後,你已經找出了使用上述方法的字段的意思。

+1

感謝提示! –