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

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

Patricia Arquette
リリース: 2024-11-26 15:17:13
オリジナル
800 人が閲覧しました

How Can I Customize Protobuf Extension Field Names in JSON Output?

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

プロトコル バッファー (protobuf) でメッセージを拡張し、それを JSON としてマーシャリングする場合、フィールド名拡張メッセージの場合、通常はプレフィックスが付いた括弧内に表示されます。 「message.extension_message_name」これは、特に拡張メッセージが API 内の別の場所で別の名前で使用されている場合、不便で混乱を招く可能性があります。

この問題は、JSON 名が「[%」として設定されている Protobuf の jsonpb ライブラリのロジックに起因します。 s]" desc.Name。desc.Name は修飾されていない拡張フィールド名を表します。

この制限を回避するために、言語ガイドでは、デフォルトの JSON 名をオーバーライドするための json_name フィールド オプション。 json_name = "custom_name" を拡張フィールドに追加すると、フィールドは JSON で指定されたcustom_name でシリアル化されます:

message TestMessage {
    extend TestMessage {
        ExtensionPlacement extension_message_name = 10;
        String messageField = 10 [json_name = "customFieldName"];
    }
}
ログイン後にコピー

この変更により、拡張フィールドは次のように JSON で "customFieldName" として表示されます。希望します。

以上がJSON 出力の Protobuf 拡張フィールド名をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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