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