Heim > Backend-Entwicklung > Golang > Wie analysiert man JSON-Arrays mit dynamischen Schlüsseln in Go-Datenstrukturen?

Wie analysiert man JSON-Arrays mit dynamischen Schlüsseln in Go-Datenstrukturen?

Linda Hamilton
Freigeben: 2024-12-07 07:07:19
Original
957 Leute haben es durchsucht

How to Parse JSON Arrays with Dynamic Keys into Go Data Structures?

JSON-Arrays in Go-Datenstrukturen analysieren

In Golang kann das Parsen von JSON-Daten in benutzerdefinierte Datenstrukturen unkompliziert sein. Stellen Sie sich ein Szenario vor, in dem eine JSON-Datei ein Array von Objekten mit dynamischen Schlüsseln enthält:

[
  {"a" : "1"},
  {"b" : "2"},
  {"c" : "3"}
]
Nach dem Login kopieren

Der Versuch, diesen JSON in einen Map[string]string zu analysieren, kann zu einem Fehler führen:

import (
    "encoding/json"
    "io/ioutil"
    "log"
)

type data map[string]string

func main() {
    c, _ := ioutil.ReadFile("test.json")
    dec := json.NewDecoder(bytes.NewReader(c))
    var d data
    dec.Decode(&d) // error: cannot unmarshal array into Go value of type data
}
Nach dem Login kopieren

Um dieses Problem zu beheben und das JSON-Array zu analysieren, wird ein benutzerdefinierter Typ mytype als Array von Karten definiert:

type mytype []map[string]string
Nach dem Login kopieren

Durch Definieren Da die Datenstruktur ein Kartenausschnitt ist, kann das JSON-Array entsprechend analysiert werden:

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "log"
)

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

Dieser Ansatz ermöglicht das Parsen von JSON-Arrays mit dynamischen Schlüsseln in eine Go-Datenstruktur.

Das obige ist der detaillierte Inhalt vonWie analysiert man JSON-Arrays mit dynamischen Schlüsseln in Go-Datenstrukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage