Heim > Backend-Entwicklung > Golang > Wie analysiere ich dynamische JSON-Schlüssel und extrahiere bestimmte Felder in Go?

Wie analysiere ich dynamische JSON-Schlüssel und extrahiere bestimmte Felder in Go?

Susan Sarandon
Freigeben: 2025-01-04 04:54:40
Original
138 Leute haben es durchsucht

How to Parse Dynamic JSON Keys and Extract Specific Fields in Go?

Dynamische JSON-Schlüsselanalyse in Golang

Im Bereich der JSON-Analyse stößt man manchmal auf die Herausforderung dynamischer Schlüssel auf der obersten Ebene einer JSON-Zeichenfolge. Angenommen, wir haben den folgenden JSON:

j := `{"bvu62fu6dq": {
           "name": "john",
           "age": 23,
           "xyz": "weu33s"
           .....
           .....}
      }`
Nach dem Login kopieren

Die Aufgabe besteht darin, die Werte für „Name“ und „Alter“ aus diesem JSON zu extrahieren, aber der Schlüssel „bvu62fu6dq“ ist dynamisch und variiert von Fall zu Fall.

Ein Ansatz besteht darin, eine Struktur zu definieren, die diese dynamische Schlüsselstruktur berücksichtigt:

type Info struct {
   UniqueID map[string]string
 }
Nach dem Login kopieren

Diese Struktur steht jedoch vor Herausforderungen bei der eigentlichen Extraktion von „Name“ und „Alter“.

Um solche dynamischen JSON-Strukturen effektiv zu analysieren, können wir die Leistungsfähigkeit des Pakets „encoding/json“ in Golang nutzen. Hier ist eine Lösung:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

type Info map[string]Person
Nach dem Login kopieren

Dieses Setup verwendet einen flexibleren Ansatz, indem es eine Karte verwendet, die mit dem dynamischen Schlüssel der obersten Ebene verschlüsselt ist (z. B. „bvu62fu6dq“). Die Struktur „Person“ kapselt die Daten, die wir aus jedem dynamischen Unterobjekt extrahieren möchten (z. B. „Name“ und „Alter“).

Mit diesem Setup wird das Dekodieren des JSON und das Extrahieren der spezifischen Werte unkompliziert :

var info Info

err := json.Unmarshal([]byte(j), &info)
if err != nil {
    // Handle error
}

fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)
Nach dem Login kopieren

Diese umfassende Lösung verarbeitet nicht nur dynamische JSON-Schlüssel der obersten Ebene, sondern unterstützt auch die Extraktion spezifischer Felder (z. B. „Name“ und „Alter“) aus jedem Unterobjekt.

Das obige ist der detaillierte Inhalt vonWie analysiere ich dynamische JSON-Schlüssel und extrahiere bestimmte Felder 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