Heim > Backend-Entwicklung > Golang > Wie entmarshaliere ich JSON mit unbekannten Feldnamen in Go mithilfe einer Karte?

Wie entmarshaliere ich JSON mit unbekannten Feldnamen in Go mithilfe einer Karte?

DDD
Freigeben: 2024-12-26 03:32:09
Original
280 Leute haben es durchsucht

How to Unmarshal JSON with Unknown Field Names in Go Using a Map?

Unmarshaling von JSON mit unbekannten Feldnamen mithilfe einer Karte

Unmarshaling von JSON mit unbekannten Feldnamen stellt eine Herausforderung dar, insbesondere wenn die Objektstruktur konsistent bleibt. Diese Frage befasst sich mit der Handhabung solcher Szenarien und bietet eine Lösung mithilfe einer Golang-Karte.

Problem:

Die bereitgestellte JSON-Antwort einer POST-Anfrage enthält ein Feld mit einem unbekannter Name. Das Ziel besteht darin, diesen JSON in eine Struktur zu entmarshalieren und gleichzeitig die konsistente Struktur der bekannten Felder beizubehalten.

Lösung:

Schritt 1: Erstellen Sie eine Struktur für die bekannten Felder

Definieren Sie eine Struktur namens mData, die die konsistenten Felder im darstellt JSON:

type mData struct {
    KnownField1 [][5]int `json:"known_field_1"`
    KnownField2 [][5]int `json:"known_field_2"`
    KnownField3 [][5]int `json:"known_field_3"`
}
Nach dem Login kopieren

Schritt 2: Verwenden Sie eine Karte, um unbekannte Feldnamen zu verarbeiten

Erstellen Sie eine Karte mit dem Namen „Daten“, um den unbekannten Feldnamen als Schlüssel und Instanz von zu speichern mData als Wert:

var data map[string]mData
Nach dem Login kopieren

Schritt 3: Entmarshalieren Sie den JSON in den Karte

Verwenden Sie json.Unmarshal, um den JSON-Körper an die Karte zu binden:

if err := json.Unmarshal(body, &data); err != nil {
    panic(err)
}
Nach dem Login kopieren

Schritt 4: Ergebnisse drucken

Die Karte enthält nun den unbekannten Feldnamen und die zugehörige mData-Instanz. Sie können mit dem folgenden Code auf die Werte zugreifen:

for k, v := range data {
    fmt.Println(k, v)
}
Nach dem Login kopieren

Mit diesem Ansatz können Sie JSON mit unbekannten Feldnamen entmarshalieren und gleichzeitig die Struktur der bekannten Felder beibehalten. Die Ausgabe des bereitgestellten Codes lautet:

unknown_field [[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich JSON mit unbekannten Feldnamen in Go mithilfe einer Karte?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage