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