JSON-Arrays in Go-Datenstrukturen analysieren
Beim Umgang mit JSON-Daten, die Arrays enthalten, kann es schwierig sein, die geeignete Go-Datenstruktur auszuwählen hinein analysieren. Wenn eine Datei beispielsweise ein Array von Schlüssel-Wert-Paaren enthält, können Versuche, einen Map[string]string zu verwenden, zu einem Fehler wie „Array kann nicht in Go-Wert vom Typ main.data entmarshaliert werden“ führen.
Die Lösung liegt in der genauen Identifizierung der JSON-Struktur. Während das bereitgestellte Beispiel wie ein Array aussieht, handelt es sich tatsächlich um ein Array von Karten. Die Datei sollte stattdessen wie folgt aussehen, um mit der Struktur „map[string]string“ übereinzustimmen:
{ "a":"1", "b":"2", "c":"3" }
Bedenken Sie den folgenden Codeausschnitt, der das Parsen eines Arrays von Karten in eine Go-Struktur demonstriert:
package main import ( "encoding/json" "fmt" "io/ioutil" "log" ) type mytype []map[string]string func main() { var data mytype file, err := ioutil.ReadFile("test.json") if err != nil { log.Fatal(err) } err = json.Unmarshal(file, &data) if err != nil { log.Fatal(err) } fmt.Println(data) }
Wenn Sie diesen Code mit einer gültigen JSON-Datei ausführen, werden die Daten erfolgreich in die gewünschte Struktur geparst und Sie erhalten Zugriff auf die Schlüssel-Wert-Paare in der Array.
Das obige ist der detaillierte Inhalt vonWie analysiere ich JSON-Maps-Arrays in Go-Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!