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
DDDOriginal
2024-12-26 03:32:09278Durchsuche

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"`
}

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

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)
}

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)
}

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]]]

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!

Stellungnahme:
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