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_valuesalways_print_fields_with_no_presence=True 取代。
  • Py:including_default_value_fields=Truealways_print_fields_with_no_presence=True 取代。

新标志在 proto3 消息上的行为与旧标志完全相同,但不再适用于 proto2 的 optional 字段。旧标志适用于 proto2 的 optional 字段,但不适用于 proto3 的 optional 字段。