Heim >Backend-Entwicklung >Golang >Wie kann ich JSON mit Leerzeichen in Schlüsselnamen mithilfe von „encoding/json' von Go entmarshalieren?
JSON-Schlüsselnamen mit Leerzeichen: Unmarshalling möglich gemacht
Die Deserialisierung von JSON-Daten mit komplexen Schlüsseln, die Leerzeichen enthalten, kann beim Unmarshalling oft zu Herausforderungen führen. Lassen Sie uns ein konkretes Beispiel mit der Encoding/JSON-Bibliothek in Go untersuchen.
Problem:
Betrachten Sie das folgende JSON-Schema:
[ {"Na me": "Platypus", "Order": "Monotremata"}, {"Na me": "Quoll", "Order": "Dasyuromorphia"} ]
Verwendet die Standard-Encoding/JSON-Bibliothek, um diese Daten in das folgende Go zu entmarshalieren struct:
type Animal struct { Name string `json:"Na me"` Order string `json:"Order,omitempty"` }
führt aufgrund des Leerzeichens im JSON-Schlüssel zu einem leeren Feld „Name“.
Ursache:
Das Leerzeichen im JSON-Schlüssel verwirrt den Unmarshalling-Prozess. Die Bibliothek versucht, den Schlüssel „Na me“ mit einem Feld in der Animal-Struktur abzugleichen, aber es gibt kein entsprechendes Feld.
Lösung:
Um dieses Problem zu beheben Stellen Sie sicher, dass die Strukturfeld-Tags im JSON-Tag die richtigen Schlüsselnamen angeben, einschließlich der Leerzeichen:
type Animal struct { Name string `json:"Na me"` Order string `json:"Order,omitempty"` }
Mit diesem überarbeiteten Tagging wird das Unmarshalling durchgeführt Der Prozess kann die JSON-Schlüssel erfolgreich den richtigen Strukturfeldern zuordnen, was zur erwarteten Ausgabe führt:
[ {Name:Platypus Order:Monotremata} {Name:Quoll Order:Dasyuromorphia} ]
Das obige ist der detaillierte Inhalt vonWie kann ich JSON mit Leerzeichen in Schlüsselnamen mithilfe von „encoding/json' von Go entmarshalieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!