JSON-Arrays mit gemischten Werttypen dekodieren
In einigen Fällen können Sie auf JSON-Arrays stoßen, die Elemente verschiedener Typen enthalten. Zum Beispiel:
{["NewYork",123]}
Go-Arrays erfordern die explizite Angabe ihres Typs, was beim Umgang mit Arrays gemischter Typen eine Herausforderung darstellen kann.
Lösung mit Schnittstelle{}
Um Arrays gemischter Typen zu verarbeiten, können Sie den Typ interface{} nutzen, der Werte jeden Typs zulässt. So können Sie dies in Go erreichen:
package main import ( "encoding/json" "fmt" ) type UntypedJson map[string][]interface{} func main() { j := `{"NYC": ["NewYork",123]}` ut := UntypedJson{} err := json.Unmarshal([]byte(j), &ut) if err != nil { fmt.Println(err) return } fmt.Printf("%#v", ut) }
Hinweis: Es ist zu beachten, dass das bereitgestellte JSON-Beispiel technisch ungültig ist, da JSON-Objekte Schlüssel haben müssen. Ein korrigiertes Beispiel wäre:
{"NYC": ["NewYork",123]}
Das obige ist der detaillierte Inhalt vonWie dekodiere ich JSON-Arrays mit gemischten Datentypen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!