为 Protobuf 扩展自定义 JSON 字段名称
Protobuf 扩展,当序列化为 JSON 时,默认为包含方括号和前缀的字段名称指示扩展的父消息。当您更喜欢更简洁或语义上有意义的 JSON 字段名称时,这可能会很不方便。
背景
Protobuf 的 jsonpb 包从 protobuf 消息生成 JSON。 JSON 字段名称主要源自消息字段名称。但是,对于扩展,使用特殊格式:“[message.extension_message_name]”。这是为了防止在一条消息中应用多个扩展名时出现字段名称冲突。
解决方案:使用 json_name 字段选项
Protobuf 语言指南提供了一种解决方法为扩展自定义 JSON 字段名称:json_name 字段选项。通过使用此选项注释扩展字段,您可以指定所需的 JSON 字段名称。
例如:
message TestMessage { extensions 1 to 10; extend TestMessage { optional string my_extension_field = 1 [json_name="my_custom_field_name"]; } }
在此示例中,扩展字段 my_extension_field 将被序列化为 JSON 为my_custom_field_name.
使用的好处json_name
以上是如何为 Protobuf 扩展自定义 JSON 字段名称?的详细内容。更多信息请关注PHP中文网其他相关文章!