Heim > Backend-Entwicklung > Golang > Wie behebe ich den Fehler „json: Array kann nicht in Go-Wert entmarshaliert werden'?

Wie behebe ich den Fehler „json: Array kann nicht in Go-Wert entmarshaliert werden'?

Mary-Kate Olsen
Freigeben: 2024-12-04 18:53:11
Original
775 Leute haben es durchsucht

How to Resolve the

Das Rätsel „Array kann nicht in Go-Wert entmarshaliert werden“ lösen

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

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

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!

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