Heim > Artikel > Backend-Entwicklung > Konvertieren Sie eine Golang-Karte in eine andere Kartenstruktur
PHP-Editor Apple stellt Ihnen vor, wie Sie eine Golang-Karte in eine andere Kartenstruktur konvertieren. Während des Entwicklungsprozesses müssen wir manchmal einige Konvertierungsvorgänge an der Originalkarte durchführen, um bestimmte Anforderungen zu erfüllen. Unabhängig davon, ob es sich um eine Datentypkonvertierung oder eine strukturelle Neuorganisation handelt, kann dies mit einigen einfachen Methoden erreicht werden. Dieser Artikel analysiert diesen Prozess für Sie im Detail, hilft Ihnen, diese Technik schnell zu beherrschen und die Entwicklungseffizienz zu verbessern. Lassen Sie uns gemeinsam diesen interessanten Konvertierungsprozess erkunden!
Ich benötige Hilfe beim Konvertieren dieser Eingabekarte in eine Ausgabekarte. Ich habe versucht, switch/case und for zu verwenden, ohne Erfolg. Vielen Dank!
Geben Sie ein:
values{ "toto_voiture_brand": ad{ "citroen": "citroen", }, "toto_voiture_model": ad{ "citroen_toto": "c3", }, "toto_moto_brand": ad{ "kawasaki": "kawasaki", }, "toto_moto_model": ad{ "kawasaki_tata": "ninja 1000 sx", }, "toto_camion_brand": ad{ "renault": "renault", "peugeot": "peugeot", }, "toto_camion_model": ad{ "renault_toto": "j5", "peugeot_tata": "255", }, }, }
Ausgabe
Values{ "toto_voiture_model": { "Citroen": { {Value: "C3"}, }, }, "toto_moto_model": { "Kawasaki": { {Value: "Ninja 1000 SX"}, }, }, "toto_camion_model": { "RENAULT": { {Value: "J5"}, }, "PEUGEOT": { {Value: "255"}, }, }, }
Ich habe versucht, Schaltergehäuse und Schleifen für und Karten zu verwenden. Aber ich habe nicht die Ergebnisteilnehmer und finde nicht, wie ich jede Karte, jeden Schlüssel und jeden Wert zuordnen kann. Vielen Dank
Ich sollte den folgenden Code verwenden, um zu verwalten, was Sie brauchen:
package main import ( "encoding/json" "fmt" "strings" ) type Output struct { Value string `json:"Value"` } func main() { // declare output output := make(map[string]map[string]Output, 0) // input input := make(map[string]map[string]string, 0) input["toto_voiture_brand"] = map[string]string{ "CITROEN": "CITROEN", } input["toto_voiture_model"] = map[string]string{ "CITROEN_toto": "C3", } input["toto_moto_model"] = map[string]string{ "KAWASAKI_tata": "Ninja 1000 SX", } input["toto_camion_model"] = map[string]string{ "RENAULT_toto": "J5", "PEUGEOT_tata": "255", } // transformation for k, v := range input { if strings.HasSuffix(k, "_model") { tempMap := make(map[string]Output, len(v)) for kk, vv := range v { key := strings.Split(kk, "_")[0] tempMap[key] = Output{ Value: vv, } } output[k] = tempMap } } data, _ := json.MarshalIndent(&output, "", "\t") fmt.Println(string(data)) }
Ich habe dem Code einige Kommentare hinzugefügt, um die verschiedenen Teile zu trennen. Die ersten beiden Teile dienen lediglich der Definition von Ein- und Ausgabevariablen.
Nehmen Sie, was in // conversion
开头的部分是成为函数的良好候选者,但我更愿意将其保留在 main
函数中以用于演示目的。让我回顾一下 loop
passiert:
input
Variablen_model
hat, wird es berücksichtigttempmap
类型的本地范围映射[string]output, das die richtige Anzahl an Elementen enthält, die wir hinzufügen möchtenv
-Variablen (deshalb beschäftigen wir uns mit verschachtelten Zuordnungen) tempmap
output
)Der letzte Teil gibt nur einen schönen JSON-Code aus, der leicht gelesen und überprüft werden kann.
Bitte beachten Sie, dass dieser Code nur vereinfacht ist, um zu zeigen, wie Sie Ihr Ziel erreichen. Bitte passen Sie ihn an, bevor Sie in die Produktion gehen.
Bitte sagen Sie mir, ob das hilft, danke!
Das obige ist der detaillierte Inhalt vonKonvertieren Sie eine Golang-Karte in eine andere Kartenstruktur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!