構造体をマップに変換すると、データを JSON にマーシャリングしたり、動的データとやり取りしたりするなど、さまざまなシナリオで役立ちます。システム。この質問では、標準ライブラリとサードパーティ パッケージの両方を利用して、Go でこの変換を実現する方法を検討します。
この質問では、reflect パッケージを使用したオリジナルの実装が示されています。
func ConvertToMap(model interface{}) bson.M { // ... Implementation }
ただし、元の実装はリフレクションに大きく依存しているため、パフォーマンスに影響を与える可能性があり、カスタム フィールドなどの機能はサポートされていません。 tags.
受け入れられた回答では、構造体からマップへの堅牢かつ効率的な変換を提供する便利なサードパーティ ソリューションである structs パッケージが導入されています。
import "github.com/fatih/structs" type Server struct { Name string ID int32 Enabled bool } // Convert to a map m := structs.Map(&Server{ Name: "gopher", ID: 123456, Enabled: true, })
構造体パッケージには、元のパッケージに比べていくつかの利点があります実装:
以上がGo 構造体をマップに効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。