2024 年 2 月 5 日宣布的变更

Protocol Buffers 于 2024 年 2 月 5 日宣布的变更。

本主题涵盖 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 字段。