2024年2月5日に発表された変更点

2024年2月5日に発表されたProtocol Buffersの変更点。

このトピックでは、26.x系におけるJava、C++、Pythonの破壊的変更について説明します。

JSONフォーマッタオプションの変更

26.x系から、デフォルト値のフィールドを出力するJSONフォーマッタオプションは、proto2およびproto3の`optional`フィールドを一貫して処理する固定的な方法に置き換えられました。

  • Java: `includingDefaultValueFields()`は`alwaysPrintFieldsWithNoPresence()`に置き換えられました。
  • C++: `always_print_default_values`は`always_print_fields_with_no_presence=True`に置き換えられました。
  • Py: `including_default_value_fields=True`は`always_print_fields_with_no_presence=True`に置き換えられました。

新しいフラグはproto3メッセージでは古いフラグと全く同じように動作しますが、proto2の`optional`フィールドには適用されなくなりました。古いフラグはproto2の`optional`フィールドには適用されましたが、proto3の`optional`フィールドには適用されませんでした。