2017-05-03 5 views
1

protobufについて学んだだけで、それは超クールだと思っています。私はそれが人間の目のためではないと理解し、本当に終わりから終わりまでの伝達のためです。私が見つけようとしていることで、まだ答えを見つけることができていません。もしあなたが何らかの方法でそれを展開してフィールド+値を見つけることができれば、エンコードされたメッセージが与えられればそれですか?Protobufメッセージデータからスキーマを取得

スキーマ名はおそらく存在しませんが、このオブジェクトにはx個のフィールドがあり、値はx、y、zです。 https://developers.google.com/protocol-buffers/docs/encoding

あなたはトップレベルをデコードすることができます:それは、私はアップル社のSWIFT-いるProtobuf(https://github.com/apple/swift-protobuf

答えて

1

ワイヤフォーマットがここに文書化されているを使用しています(それはいけませんが)任意の違いを行った場合

ある程度のメッセージが含まれていますが、埋め込まれた長さ区切りフィールドの場合、文字列かネストされたメッセージかを知らないでしょう。グループを除いて、エンコードされたメッセージに存在するすべてのワイヤタイプを複数のフィールドタイプにマッピングできます。例えば、32ビットフィールドは、整数または浮動小数点数を格納することができる。長さで区切られたフィールドには、ネストされたメッセージや文字列などが含まれます。正確なマッピングは、送信者と受信者には通常知られており、バイナリデータには含まれていないスキーマ(= .protoファイル)によって決まります。

関連する問題