Das Problem verstehen:
Beim Versuch, Daten zu analysieren Von einer JSON-API tritt ein unerwarteter Fehler auf: „Panik: JSON: Das Array kann nicht in den Go-Wert entmarshaliert werden Geben Sie main.Structure ein. Dieser Fehler weist auf eine Nichtübereinstimmung zwischen den JSON-Daten und der definierten Go-Struktur hin.
Identifizieren der Diskrepanz:
Bei der Untersuchung des Codes wird deutlich, dass der Strukturtyp erwartet wird ein Array von Interface{}-Objekten als „Stuff“-Feld. Allerdings handelt es sich bei den analysierten JSON-Daten um ein Array selbst und nicht um ein Array von Interface{}-Objekten.
Lösung 1: Unmarshalieren zu einem Slice
Um die Nichtübereinstimmung zu beheben , wird stattdessen empfohlen, das JSON-Array in ein Segment von interface{}-Objekten zu entmarshalieren. Auf diese Weise bleibt die JSON-Array-Struktur im Go-Code erhalten:
var data []interface{} err = json.Unmarshal(body, &data)
Lösung 2: Spezifische Strukturfelder definieren
Alternativ, wenn die JSON-Antwortdaten vorhanden sind Wenn Sie eine konsistente Struktur wünschen, sollten Sie erwägen, eine Go-Struktur zu definieren, die den genauen Feldern in der Antwort entspricht. Dies ermöglicht einen strukturierteren und typsichereren Unmarshalling-Prozess:
type Tick struct { ID string Name string Symbol string Rank string Price_USD string ... and so on } var data []Tick err = json.Unmarshal(body, &data)
Durch die Verwendung eines dieser Ansätze kann die Anwendung die JSON-Daten erfolgreich analysieren und den Fehler „Array kann nicht in Go-Wert entmarshallt werden“ vermeiden.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „json: Array kann nicht in Go-Wert entmarshaliert werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!