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
字段。