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"} ]
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 }
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
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) }
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!