首頁 > 後端開發 > Golang > 如何為 Protobuf 擴充功能自訂 JSON 欄位名稱?

如何為 Protobuf 擴充功能自訂 JSON 欄位名稱?

Mary-Kate Olsen
發布: 2024-12-09 06:25:10
原創
382 人瀏覽過

How Can I Customize JSON Field Names for Protobuf Extensions?

為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

  • 控制 JSON 欄位名稱:避免用於擴充的詳細命名約定。
  • 與其他 JSON 欄位名稱的一致性: 將擴充欄位名稱與用於常規訊息的命名約定對齊欄位。
  • 提高了可讀性和可維護性:使 JSON 輸出更易於人類閱讀且更易於使用。

以上是如何為 Protobuf 擴充功能自訂 JSON 欄位名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板