In Golang kann das Parsen einer JSON-Zeichenfolge mit einem dynamischen Schlüssel der obersten Ebene eine Herausforderung sein. Betrachten Sie den folgenden JSON:
{"bvu62fu6dq": { "name": "john", "age": 23, ..... .....}
Um die Werte für „Name“ und „Alter“ zu extrahieren, ist eine benutzerdefinierte Lösung erforderlich, da der Schlüssel der obersten Ebene kein festes Feld ist.
Ein optimaler Ansatz besteht darin, eine Struktur zur Darstellung des inneren Objekts und eine Karte zur Darstellung des dynamischen Schlüssels der obersten Ebene zu definieren. Die Struktur sollte Felder für die gewünschten Attribute enthalten, wie zum Beispiel:
type Person struct { Name string `json:"name"` Age int `json:"age"` }
Die Karte wiederum kann den dynamischen Schlüssel der obersten Ebene als Schlüssel und die Personenstruktur als Wert verwenden. Diese Struktur ermöglicht einen effizienten Zugriff auf die gewünschten Werte:
type Info map[string]Person
Um den JSON in die benutzerdefinierten Strukturen zu dekodieren, verwenden Sie die Funktion json.Unmarshal. Nach der Dekodierung kann über den Kartenschlüssel auf die Werte zugegriffen werden:
var info Info json.Unmarshal([]byte(j), &info) fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)
Dieser Ansatz bietet eine flexible und erweiterbare Möglichkeit, JSON mit dynamischen Schlüsseln der obersten Ebene zu verarbeiten und so einen einfachen Zugriff auf die gewünschten Attribute zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWie analysiere ich JSON mit dynamischen Top-Level-Schlüsseln in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!