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