Protobuf 2.5.Xで生成されたデータについては、Protobufバージョン3.0.Xで安全に読むことができますか?新しいバージョンのprotobufでデータを読み取る
0
A
答えて
1
Protobufワイヤフォーマットは、後方互換性と前方互換性があるように設計されています。したがってgenerally it is safe、特定のv2フィーチャーを使用して自分自身を撮影しない限り、custom default values。デフォルト値はconstant in v3です。特にenumのデフォルト値は最初のエントリで、it must be zeroです。したがって、v2のカスタム値は失われます。デフォルト値のフィールドはワイヤにまったく表示されないため、レシーバーは設定されていないか、デフォルト値に設定されているかどうかはわかりません。 v3ではすべてのフィールドがoptional
(これ以上はrequired
)ではないので、どのフィールドも法的に不足する可能性があることに注意してください。
v2でカスタムデフォルトを使用していない場合、または最初の列挙型エントリで0以外の値を使用した場合、v3はそれを正しく読み込む必要があります。
関連する問題
- 1. 古いXMLデータをInfoPathフォームの新しいバージョンに読み込みます
- 2. 新しいバージョンのosmdroidタイルの読み込みが遅い
- 3. ゲームサーバーから新しいデータを取得し続けるログファイルを読み取る
- 4. perlでexcelのデータを読み取る
- 5. jQueryで構成データを読み取る
- 6. JavaでFoxPro 2.6データを読み取る
- 7. jSONデータをjavascriptで読み取る
- 8. PHPでvar_dumpデータを読み取る
- 9. SQLでXMLデータを読み取る
- 10. Tensorflow:Python 3.5でMNISTデータを読み取る
- 11. Spark StreamingでHbaseデータを読み取る
- 12. Racket - stdinから新しい行までを読み取る
- 13. C#で新しいファイルタイプを読み取る方法
- 14. QuicktimeのC#バージョンを使用してタイムコードトラックデータを読み取る
- 15. クリックイベントで新しいJSONデータをAngularに読み込む
- 16. git fetchはプロジェクトの最新バージョンを読み込まない
- 17. 角材最新バージョンを取得| md-chips:読み取り専用、リムーバブル
- 18. RecyclerView新しいデータを読み込むときにスクロールする
- 19. XMLファイルのデータをMYSql 5.1に読み込みます。バージョン
- 20. PE32 +セクションの生データを読み取る
- 21. cocos2d - CCRenderTextureのデータを読み取る
- 22. スマートカードのデータを読み取る方法
- 23. Raspbian - HIDデバイスのデータを読み取る
- 24. gRPC/Protobufインターフェイスのバージョン管理
- 25. JREの新しいバージョンではサウンドバンクが読み込まれませんが、古いバージョンではあります
- 26. 読み取り専用モードで新しいHTMLウィンドウを開く
- 27. 次の読み取りをブロックせずにストリームからデータを読み取る
- 28. TFS新しいファイルで最新バージョンを取得する
- 29. SwiftでFirebaseデータを読み取ることができない
- 30. Herokuはノードのバージョンを読み取っていません
v2でデフォルト値を使用しても、v3でメッセージを読み取ることができます。デフォルトはすべてゼロになっているということだけです。フィールドが送信者によって設定されていない場合、その値は受信側でゼロになります。そして、これを送信者が明示的にゼロに設定したフィールドと区別する方法はありません。なぜなら(私が理解するように)「持っている」アクセサが削除されているからです。 –
どちらの場合でもproto2構文を使用していたらどうなりますか? jarファイルをアップグレードするだけですが、古い構文を使用していますか? – litov