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 として表示されます。
この回避策により、開発者は拡張メッセージの JSON 名をカスタマイズして、アプリケーション固有のニーズに合わせて、潜在的な混乱を軽減できます。
以上がProtobuf 拡張機能の JSON 名をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。