Heim > Backend-Entwicklung > Golang > Warum verursacht das Unmarshaling eines Arrays in eine Go-Struktur durch JSON eine Panik?

Warum verursacht das Unmarshaling eines Arrays in eine Go-Struktur durch JSON eine Panik?

Linda Hamilton
Freigeben: 2024-12-16 10:49:10
Original
779 Leute haben es durchsucht

Why Does JSON Unmarshaling an Array into a Go Struct Cause a Panic?

Panic: JSON Unmarshal Array into Go Struct

Beim Versuch, Daten aus einer JSON-API zu analysieren, ist der Fehler aufgetreten: „Panic: json: Das Array kann nicht in einen Go-Wert vom Typ „main.Structure“ entmarshaliert werden.“ Das Problem tritt auf, wenn ein JSON-Array in eine Go-Struktur entmarshallt wird.

Ihr Code:

type Structure struct {
        stuff []interface{}
}

func main() {
        // ...

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

Erwartetes Ergebnis:

Sie haben erwartet, dass der Code eine Liste von Schnittstellen zurückgibt Objekte.

Tatsächliches Ergebnis:

Stattdessen haben Sie eine Fehlermeldung erhalten, die darauf hinweist, dass das JSON-Array nicht in den Structure Go-Wert entmarshallt werden konnte.

Lösung:

Um dieses Problem zu lösen, ziehen Sie zwei in Betracht Ansätze:

  1. Unmarshal to a Slice:

    Ersetzen Sie die Zeile:

    decoded := &Structure{}
    Nach dem Login kopieren

    durch:

    var data []interface{}
    Nach dem Login kopieren

    Dadurch wird das JSON-Array in einen Teil davon entmarshmiert Schnittstellen.

  2. Unmarshalieren in ein Segment von Strukturen:

    Erstellen Sie spezifische Strukturen für die Antwortdatenstruktur. Zum Beispiel:

    type Tick struct {
      ID string
      Name string
      Symbol string
      Rank string
      Price_USD string
    }
    Nach dem Login kopieren

    Dann führen Sie das Unmarshalieren zu einem Teil dieser Strukturen durch:

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

Das obige ist der detaillierte Inhalt vonWarum verursacht das Unmarshaling eines Arrays in eine Go-Struktur durch JSON eine Panik?. 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