Heim > Backend-Entwicklung > Golang > Wie entmarshaliere ich unerwartete JSON-Strukturen in Go?

Wie entmarshaliere ich unerwartete JSON-Strukturen in Go?

Susan Sarandon
Freigeben: 2024-11-25 12:11:15
Original
911 Leute haben es durchsucht

How to Unmarshal Unexpected JSON Structures in Go?

Unmarshaling von JSON-Daten unbekannten Formats

Wenn man mit JSON-Daten konfrontiert wird, die eine unvorhersehbare Struktur und variable Schlüssel besitzen, stellt das Unmarshaling eine Herausforderung dar es in Go-Strukturen. In diesem Artikel geht es darum, wie man mit solchen Szenarien effizient umgeht.

Lösung

Um dieses Problem anzugehen, gibt es zwei empfohlene Ansätze:

Ansatz 1: Verwenden einer Map

Wenn die Schlüssel unbekannt sind, ist die Verwendung einer Map[string]interface{}-Variable eine geeignete Option zum Unmarshaling der JSON-Nutzlast.

var grades map[string]interface{}

err := json.Unmarshal([]byte(jsonString), &grades)
Nach dem Login kopieren

Hier enthält die Kartenvariable „Grades“ die nichtmarshalierten Daten, wobei Schlüssel die unbekannten Fachnamen darstellen und Werte Karten sind, die aus Studentennamen und ihren Noten bestehen.

Ansatz 2: Unbekannte Schlüssel mit JSON-Tag ignorieren

Wenn a struct bevorzugt wird, kann es mit dem Tag json:"-" annotiert werden, um bestimmte Felder beim JSON-Marshalling und Unmarshalling zu ignorieren. Dadurch kann die Struktur die nicht gemarshalten Daten enthalten und gleichzeitig die unbekannten Schlüssel ausschließen.

type GradeData struct {
    Grades map[string]interface{} `json:"-"`
}

var gradesData GradeData
err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
Nach dem Login kopieren

In diesem Fall enthält die Struktur „GradeData“ nur das Feld „Noten“, bei dem es sich um eine Zuordnung der Fachnamen und Schüler handelt Noten, aber die ursprünglichen Schlüsselnamen aus dem JSON sind nicht vorhanden. Das JSON-Tag stellt sicher, dass die Felder der Struktur mit dem gewünschten Ausgabeformat übereinstimmen.

Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich unerwartete JSON-Strukturen 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