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
Barbara StreisandOriginal
2024-12-01 04:51:09439Durchsuche

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"`
}

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)
    }
}

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!

Stellungnahme:
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