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

Wie kann ich JSON-Daten mit Leerzeichen in Schlüsseln mithilfe von „encoding/json' von Go erfolgreich entmarshalieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-23 22:50:12894Durchsuche

How Can I Successfully Unmarshal JSON Data with Spaces in Keys Using Go's `encoding/json`?

Leerzeichen in JSON-Schlüsseln: Das Unmarshaling-Hindernis überwinden

Das Unmarshaling von JSON-Daten mit Schlüsseln, die Leerzeichen enthalten, kann eine Herausforderung für die Standardkodierung/JSON darstellen Bibliothek in Go. Standardmäßig versucht die Bibliothek, JSON-Schlüssel den Feldnamen ohne Leerzeichen zuzuordnen. Im bereitgestellten Code:

type Animal struct {
    Name  string `json:"Na me"`
    Order string `json:"Order,omitempty"`
}

Der Name-Schlüssel in den JSON-Daten steht in Konflikt mit diesem Muster. Dieser Fehler kann behoben werden, indem die JSON-Tags so geändert werden, dass sie die JSON-Schlüssel genau widerspiegeln:

type Animal struct {
    Name  string `json:"Na me"` // Corrected the space after the colon
    Order string `json:"Order,omitempty"`
}

Wie in der Dokumentation zu „encoding/json“ angegeben ist, sind in JSON-Tags nach dem Doppelpunkt keine Leerzeichen zulässig. Durch Befolgen dieser Anleitung kann der Unmarshaling-Prozess die JSON-Schlüssel korrekt identifizieren und den entsprechenden Feldern in der Animal-Struktur zuordnen. Das Ausführen des korrigierten Codes führt zur erwarteten Ausgabe:

[{Name:Platypus Order:Monotremata} {Name:Quoll Order:Dasyuromorphia}]

Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Daten mit Leerzeichen in Schlüsseln mithilfe von „encoding/json' von Go erfolgreich entmarshalieren?. 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