Heim > Backend-Entwicklung > Golang > Warum schlägt JSON Unmarshal beim Zuordnen von Arrays zu Go-Strukturen fehl?

Warum schlägt JSON Unmarshal beim Zuordnen von Arrays zu Go-Strukturen fehl?

Mary-Kate Olsen
Freigeben: 2024-11-30 09:12:17
Original
966 Leute haben es durchsucht

Why Does JSON Unmarshal Fail When Mapping Arrays to Go Structs?

JSON-Array kann nicht in Go-Struktur entmarshaliert werden

Beim Versuch, Daten aus einer JSON-API zu analysieren, ist ein Programmierer auf den Fehler gestoßen: „ Panik: JSON: Das Array kann nicht in den Go-Wert des Typs entmarshaliert werden main.Structure."

Problemauszug:

type Structure struct {
        stuff []interface{}
}

...

decoded := &Structure{}
err = json.Unmarshal(body, decoded)
Nach dem Login kopieren

Erwartetes Ergebnis:

Eine Liste von Schnittstellenobjekten.

Tatsächlich Ergebnis:

Panik: JSON: Das Array kann nicht in den Go-Wert vom Typ main.Structure entmarshaliert werden

Lösung:

Das Problem tritt auf, wenn Ich versuche, ein JSON-Array in eine Go-Struktur zu entmarshalieren. Um dieses Problem zu lösen, kann man entweder:

  • Unmarshal in ein Slice:
var data []interface{}
err = json.Unmarshal(body, &data)
Nach dem Login kopieren
  • Unmarshal in ein Slice von Strukturen:
type Tick struct {
     ID string
     Name string
     ... and so on
}

var data []Tick
err = json.Unmarshal(body, &data)
Nach dem Login kopieren

Durch Anpassen der Wenn Sie den Strukturtyp an die Struktur der Antwortdaten anpassen, wird der Unmarshaling-Prozess das JSON-Array erfolgreich analysieren.

Das obige ist der detaillierte Inhalt vonWarum schlägt JSON Unmarshal beim Zuordnen von Arrays zu Go-Strukturen fehl?. 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