自訂Protobuf 擴充功能的JSON 名稱
在訊息中加入擴充訊息的場景中,需要指定自訂JSON擴充訊息的名稱,而不是預設格式[message.extension_message_name]。本文解決了這一需求並提供了一種解決方法。
如問題中所提到的,Protobuf 中擴充訊息的 JSON 名稱會自動設定為 [desc.Name]。然而,這種命名約定在某些情況下可能不適合,特別是當擴充訊息在 API 中的其他地方使用時,並且使用預設名稱可能會導致混亂。
要解決這個問題,解決方案在於使用json_name 欄位選項。根據 Protobuf 語言指南,訊息欄位名稱轉換為小駝峰大小寫並成為 JSON 物件鍵。透過指定 json_name 欄位選項,您可以覆寫預設行為並指定自訂 JSON 名稱。
例如,考慮以下Protobuf 定義:
message TestMessage { string myField = 1 [json_name="my_special_field_name"]; }
使用此定義,當TestMessage 被編組為JSON,myField 將在JSON 中顯示為my_special_field_name輸出,而不是預設的[TestMessage. myField]。
此解決方法允許開發人員為其擴展訊息自訂 JSON 名稱,使它們更符合應用程式的特定需求並減少潛在的混亂。
以上是如何為 Protobuf 擴充功能自訂 JSON 名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!