Heim > Backend-Entwicklung > Golang > Wie kann ich JSON mit Leerzeichen in Schlüsselnamen mithilfe von „encoding/json' von Go entmarshalieren?

Wie kann ich JSON mit Leerzeichen in Schlüsselnamen mithilfe von „encoding/json' von Go entmarshalieren?

Mary-Kate Olsen
Freigeben: 2024-12-25 07:57:10
Original
516 Leute haben es durchsucht

How Can I Unmarshal JSON with Spaces in Key Names Using Go's `encoding/json`?

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"}
]
Nach dem Login kopieren

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"`
}
Nach dem Login kopieren
Nach dem Login kopieren

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"`
}
Nach dem Login kopieren
Nach dem Login kopieren

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}
]
Nach dem Login kopieren

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!

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