特定のシナリオでは便宜上、Golang で構造体をマップに変換する必要がある場合があります。これは、reflect パッケージと json パッケージを通じて実現できます。
1 つのアプローチには、reflect パッケージを利用して構造体の構造を検査し、マップを動的に構築します。これは、提供されている ConvertToMap 関数を使用して行うことができます。
<br>func ConvertToMap(モデル インターフェース{}) bson.M {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">ret := bson.M{} modelReflect := reflect.ValueOf(model) ... // Implementation return ret
}
< /pre>
また、structs パッケージは便利で包括的なソリューションを提供します。構造体をマップに変換するなど、構造体に関連するさまざまな操作をサポートします。たとえば、次のコード スニペットは Map 関数を利用しています:
<br>type Server struct {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><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 サイトの他の関連記事を参照してください。