為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中文網其他相關文章!