Heim >Backend-Entwicklung >Golang >Wie gehe ich mit JSON-Schlüsseln mit Leerzeichen in Go um?

Wie gehe ich mit JSON-Schlüsseln mit Leerzeichen in Go um?

Barbara Streisand
Barbara StreisandOriginal
2024-12-19 00:54:10353Durchsuche

How to Handle JSON Keys with Spaces in Go?

Unmarshalling von JSON mit Schlüsselnamen, die Leerzeichen enthalten

Beim JSON-Deserialisierungsprozess können beim Umgang mit JSON-Daten, die Schlüsselnamen enthalten, Schwierigkeiten auftreten mit Leerzeichen. Dieses Problem tritt auf, wenn die Standardbibliothek „Encoding/JSON“ in Go verwendet wird. Die Bibliothek hat Schwierigkeiten, Schlüssel mit Leerzeichen zu interpretieren, während sie versucht, JSON-Felder Strukturfeldern zuzuordnen.

Um dieses Problem zu beheben, stellen Sie sicher, dass die JSON-Tag-Spezifikation korrekt ist. Das JSON-Tag ordnet JSON-Feldnamen Strukturfeldnamen zu. Wenn in der JSON-Tag-Spezifikation nach dem Doppelpunkt, aber vor dem Anführungszeichen ein Leerzeichen erscheint, kann die Bibliothek das JSON-Feld nicht ordnungsgemäß dem Strukturfeld zuordnen.

Bedenken Sie den folgenden Beispielcode:

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

In diesem Beispiel wird das JSON-Tag für das Feld „Name“ fälschlicherweise mit einem Leerzeichen nach dem Doppelpunkt angegeben. Um das Problem zu beheben, entfernen Sie das Leerzeichen und geben Sie das Tag wie folgt an:

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

Mit dieser Änderung kann die JSON-Bibliothek die JSON-Feldnamen erfolgreich den Strukturfeldnamen zuordnen, auch wenn die Feldnamen enthalten Räume. Dadurch wird sichergestellt, dass die Strukturfelder ordnungsgemäß mit Werten aus den JSON-Daten gefüllt werden.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit JSON-Schlüsseln mit Leerzeichen in Go um?. 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