Heim > Backend-Entwicklung > Golang > Wie entmarshaliere ich JSON mit variablen Array-Feldtypen in Go?

Wie entmarshaliere ich JSON mit variablen Array-Feldtypen in Go?

Barbara Streisand
Freigeben: 2024-12-01 04:51:09
Original
438 Leute haben es durchsucht

How to Unmarshal JSON with Variable Array Field Types in Go?

Unmarshalling von JSON mit einem variablen Array-Feldtyp in Go

In Go werden JSON-Daten in eine vordefinierte Struktur entmarshallt. Bestimmte API-Antworten können jedoch eine Herausforderung darstellen, wenn die Art des Schlüsselwerts zwischen den Anforderungen variieren kann. Beispielsweise könnte eine API entweder Inline-Objekte oder Objektreferenzen für einen bestimmten Schlüssel zurückgeben.

Um diese Variabilität zu bewältigen, sollten Sie den folgenden Ansatz in Betracht ziehen:

type Data struct {
    MyKey []interface{} `json:"mykey"`
}
Nach dem Login kopieren

Diese Struktur entmarspelt beide Inline-Objekte und Objektreferenzen in ein Array von Schnittstellen. Durch die Verwendung eines Typschalters nach dem Unmarshalling können Sie den tatsächlichen Typ jedes Elements im Array bestimmen:

for _, v := range data.MyKey {
    switch x := v.(type) {
    case string:
        fmt.Println("Got a string: ", x)
    case map[string]interface{}:
        fmt.Printf("Got an object: %#v\n", x)
    }
}
Nach dem Login kopieren

Mit dieser Methode können Sie JSON-Daten mit variablen Array-Feldtypen auf flexible und idiomatische Weise analysieren.

Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich JSON mit variablen Array-Feldtypen in Go?. 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