Heim > Backend-Entwicklung > Golang > Wie gehe ich mit dynamischen JSON-Schlüsseln beim Unmarshaling in Go um?

Wie gehe ich mit dynamischen JSON-Schlüsseln beim Unmarshaling in Go um?

Susan Sarandon
Freigeben: 2024-12-07 13:02:13
Original
733 Leute haben es durchsucht

How to Handle Dynamic JSON Keys During Unmarshaling in Go?

Dynamische Schlüsselverarbeitung im JSON-Unmarshaling: GoLang

In GoLang kann das Unmarshaling von JSON-Daten in eine Struktur eine Herausforderung darstellen, wenn die Schlüssel im JSON enthalten sind sind dynamisch oder können nicht direkt einem bestimmten Feld in der Struktur zugeordnet werden. In diesem Artikel wird eine Lösung für dieses Problem vorgestellt, indem die Verwendung einer Karte zum Erfassen dynamischer Schlüssel und der zugehörigen Werte vorgestellt wird.

Problembeschreibung:

Beachten Sie die folgende Struktur:

type X struct {
 A string `json:"a_known_string"`
 B string `json:"b_known_string"`
}
Nach dem Login kopieren

und eine JSON-Zeichenfolge:

"{
 "any string" : {
   "a_known_string" : "some value",
   "b_known_string" : "another value" 
 }
}"
Nach dem Login kopieren

Verwendung der Standard-JSON-Unmarshal-Funktion mit der Struktur würde den dynamischen Schlüssel „irgendeine Zeichenfolge“ nicht erfassen.

Lösung mit einer Karte:

Um dieses Problem zu lösen, können wir eine Karte zum Speichern verwenden die dynamischen Schlüssel-Wert-Paare. Hier ist ein Beispiel:

var m map[string]X
err := json.Unmarshal([]byte(jsnStr), &m)
Nach dem Login kopieren

In dieser Lösung ist die m-Variable eine Karte, in der die Schlüssel die dynamischen Zeichenfolgen und die Werte Instanzen der X-Struktur sind.

Dieser Ansatz ermöglicht es uns, die dynamischen Schlüssel und ihre entsprechenden Werte zu erfassen und gleichzeitig eine strukturierte Darstellung der Daten beizubehalten.

Playground Beispiel:

Das bereitgestellte Spielplatzbeispiel demonstriert die Verwendung der Lösung:

https://go.dev/play/p/tZ27zKhI9Ct

Das obige ist der detaillierte Inhalt vonWie gehe ich mit dynamischen JSON-Schlüsseln beim Unmarshaling in Go um?. 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