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!