ホームページ  >  記事  >  バックエンド開発  >  MarshalJSON() を使用して Go の JSON エンコーディングに任意のフィールドを追加できますか?

MarshalJSON() を使用して Go の JSON エンコーディングに任意のフィールドを追加できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-12 08:47:01587ブラウズ

Can You Add Arbitrary Fields to JSON Encoding in Go Using MarshalJSON()?

MarshalJSON() を使用して Go の JSON エンコーディングに任意のフィールドを追加する方法

問題:

json.Marshal() を使用して構造体をエンコードすると、次のような問題が発生する可能性があります。構造体の定義の一部ではない追加フィールドを JSON 出力に含める必要があります。これは、JSON ペイロードにメタデータまたはコンテキスト情報を追加する必要があるシナリオに役立ちます。

質問:

MarshalJSON() メソッドを利用することは可能ですか?任意のフィールドを JSON 表現に組み込むstruct?

答え:

はい、MarshalJSON() を使用して、Go の JSON エンコーディングに任意のフィールドを追加できます。このメソッドを使用すると、構造体の JSON 表現をカスタマイズして、出力をより詳細に制御できます。

実装:

カスタム MarshalJSON() メソッドを作成できます。追加フィールドを使用して新しい構造体を構築し、それを JSON にマーシャリングする構造体:

type Book struct {

以上がMarshalJSON() を使用して Go の JSON エンコーディングに任意のフィールドを追加できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。