Heim > Backend-Entwicklung > Golang > Wie analysiere ich ein JSON-Array dynamischer Schlüssel-Wert-Paare in Go?

Wie analysiere ich ein JSON-Array dynamischer Schlüssel-Wert-Paare in Go?

Mary-Kate Olsen
Freigeben: 2024-12-16 20:36:12
Original
840 Leute haben es durchsucht

How to Parse a JSON Array of Dynamic Key-Value Pairs in Go?

Parsen eines JSON-Arrays in eine Datenstruktur in Go

Bei der Arbeit mit JSON-Daten in Go ist es wichtig, die entsprechenden Datenstrukturen zu verstehen für verschiedene JSON-Formate. In diesem Fall haben wir es mit einem JSON-Array dynamischer Schlüssel-Wert-Paare zu tun.

Problem:

Sie versuchen, eine JSON-Datei zu analysieren, die ein Array von enthält JSON-Objekte. Die Verwendung eines einfachen Map[String]Strings zur Darstellung der Daten führt jedoch zu einem Fehler:

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

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

Lösung:

So analysieren Sie den JSON korrekt Für ein Array müssen Sie eine Datenstruktur definieren, die das Array von Objekten darstellt. Dies kann mithilfe eines benutzerdefinierten Typs erreicht werden, der einen Teil der Karten einbettet.

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

Code:

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

Beispiel:

Für die bereitgestellte JSON-Datei:

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

Die Ausgabe des Codes würde sein:

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

Das obige ist der detaillierte Inhalt vonWie analysiere ich ein JSON-Array dynamischer Schlüssel-Wert-Paare in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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