6

.proto ファイルなしで、受信した Google プロトコル バッファ データグラムを解析することは可能ですか? プロトコル バッファを使用してシリアル化されたばかりですが、IDL ファイルについてはわかりません。

ある種の反射によって任意の値を反復処理する方法を探していますか? これは可能ですか?

ありがとうございました!

4

1 に答える 1

8

protoc --decode_raw < my_file

出力を検査するときは、次のことを考慮する必要があります。

  • フィールド名は表示されず、タグ番号のみが表示されます。
  • すべての varint フィールドは整数として表示されます。これはほとんどのタイプで問題ありませんが、sint* は「ジグザグ」形式で表示されます。
  • double と float は hex として表示されます。
  • バイト、文字列フィールド、およびサブメッセージはすべて同じように表示されます。つまり、単なるバイトの集まりです。

メッセージをプログラムでデコードしたい場合は、上記の方法を使用してフィールドの意味を理解した後で、独自の .proto ファイルを作成できます。

于 2013-02-01T06:47:18.533 に答える