Heim >Backend-Entwicklung >Golang >Wie analysiere ich JSON-Maps-Arrays in Go-Strukturen?

Wie analysiere ich JSON-Maps-Arrays in Go-Strukturen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 00:10:09868Durchsuche

How Do I Parse JSON Arrays of Maps into Go Structs?

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!

Stellungnahme:
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