ホームページ >バックエンド開発 >Golang >Go 構造体をマップに変換するにはどうすればよいですか?

Go 構造体をマップに変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-11 12:02:11480ブラウズ

How Can I Convert a Go Struct to a Map?

Golang で構造体をマップに変換する

特定のシナリオでは便宜上、Golang で構造体をマップに変換する必要がある場合があります。これは、reflect パッケージと json パッケージを通じて実現できます。

Reflect パッケージの使用

1 つのアプローチには、reflect パッケージを利用して構造体の構造を検査し、マップを動的に構築します。これは、提供されている ConvertToMap 関数を使用して行うことができます。

<br>func ConvertToMap(モデル インターフェース{}) bson.M {</p>
<pre class="brush:php;toolbar:false">ret := bson.M{}

modelReflect := reflect.ValueOf(model)
... // Implementation

return ret

}
< /pre>

Structs パッケージ

また、structs パッケージは便利で包括的なソリューションを提供します。構造体をマップに変換するなど、構造体に関連するさまざまな操作をサポートします。たとえば、次のコード スニペットは Map 関数を利用しています:

<br>type Server struct {</p>
<pre class="brush:php;toolbar:false">Name string
ID int32
Enabled bool

}

s := &Server{

Name: "gopher",
ID: 123456,
Enabled: true,

}

m := structs.Map(s) // => {"Name":"gopher", "ID":123456, "Enabled":true}

構造体パッケージは、匿名 (埋め込み) フィールドやネストされた構造体などのシナリオを処理します。 。さらに、フィールド タグを使用してフィールドをフィルタリングするオプションも提供します。

以上がGo 構造体をマップに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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