ホームページ > バックエンド開発 > Golang > Protobuf 拡張機能の JSON フィールド名をカスタマイズするにはどうすればよいですか?

Protobuf 拡張機能の JSON フィールド名をカスタマイズするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-09 06:25:10
オリジナル
438 人が閲覧しました

How Can I Customize JSON Field Names for Protobuf Extensions?

Protobuf 拡張機能の JSON フィールド名のカスタマイズ

Protobuf 拡張機能は、JSON にシリアル化されると、デフォルトで角かっこと接頭辞を含むフィールド名になります。拡張機能の親メッセージを示します。これは、より簡潔な、または意味的に意味のある JSON フィールド名を好む場合には不便なことがあります。

Background

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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート