Heim > Backend-Entwicklung > Golang > Wie kann ich eine Go-Struktur in eine Karte konvertieren?

Wie kann ich eine Go-Struktur in eine Karte konvertieren?

Mary-Kate Olsen
Freigeben: 2024-12-11 12:02:11
Original
514 Leute haben es durchsucht

How Can I Convert a Go Struct to a Map?

Konvertieren einer Struktur in eine Karte in Golang

Der Einfachheit halber kann es in bestimmten Szenarien erforderlich sein, eine Struktur in eine Karte in Golang zu konvertieren. Dies kann durch die Reflect- und JSON-Pakete erreicht werden.

Verwenden des Reflect-Pakets

Ein Ansatz besteht darin, das Reflect-Paket zu verwenden, um die Struktur der Struktur zu überprüfen und Erstellen Sie eine Karte dynamisch. Dies kann mit der bereitgestellten ConvertToMap-Funktion erfolgen:

<br>func ConvertToMap(model interface{}) 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
Nach dem Login kopieren

}
< /pre>

Die Strukturen nutzen Paket

Alternativ bietet das structs-Paket eine praktische und umfassende Lösung. Es unterstützt verschiedene Operationen mit Strukturen, einschließlich deren Konvertierung in Karten. Beispielsweise verwendet das folgende Codefragment die Map-Funktion:

<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
Nach dem Login kopieren

}

s := &Server{

Name: "gopher",
ID: 123456,
Enabled: true,
Nach dem Login kopieren

}

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

Das Strukturpaket verarbeitet Szenarios wie anonyme (eingebettete) Felder und verschachtelte Strukturen . Darüber hinaus bietet es Optionen zum Filtern von Feldern mithilfe von Feld-Tags.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Go-Struktur in eine Karte konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Vorheriger Artikel:Wie kann ich in Go eine statische Persistenz lokaler Variablen erreichen? Nächster Artikel:Wie gehe ich mit HTTPS-Anfragen mit benutzerdefinierten oder nicht vertrauenswürdigen Zertifikaten in Go um?
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage