Heim >Backend-Entwicklung >Golang >Wie erreicht man in Go ein JSON-Unmarshal mit Berücksichtigung der Groß- und Kleinschreibung?

Wie erreicht man in Go ein JSON-Unmarshal mit Berücksichtigung der Groß- und Kleinschreibung?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-09 07:43:02568Durchsuche

How to Achieve Case-Sensitive JSON Unmarshal in Go?

Groß-/Kleinschreibung berücksichtigendes JSON-Unmarshal in Go

Die json.Unmarshal-Funktion in Go bietet eine Möglichkeit, JSON-Daten in eine Struktur zu deserialisieren. Standardmäßig führt Unmarshal einen Abgleich zwischen den JSON-Schlüsseln und den Strukturfeldnamen oder -tags ohne Berücksichtigung der Groß- und Kleinschreibung durch. Es kann jedoch Fälle geben, in denen eine Übereinstimmung zwischen Groß- und Kleinschreibung wünschenswert ist.

Problem

Angenommen, Sie erhalten JSON-Daten mit Tags wie „e“ und „ E". Sie möchten das Objekt mit dem Tag „e“ entmarshalieren und das mit dem Tag „E“ ignorieren. Mit dem Standardabgleich, bei dem die Groß- und Kleinschreibung nicht beachtet wird, akzeptiert Unmarshal beide Tags und entmarshmiert die Struktur entsprechend.

Lösung

Leider unterstützt die Standard-JSON-Bibliothek derzeit keine Groß-/Kleinschreibung. sensibles Matching für Unmarshal. Laut der offiziellen Dokumentation:

To unmarshal JSON into a struct, Unmarshal matches incoming object keys to the keys used by Marshal (either the struct field name or its tag), preferring an exact match but also accepting a case-insensitive match.

Daher gibt es keine Möglichkeit, den Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung mithilfe der Standard-JSON-Bibliothek zu deaktivieren.

Das obige ist der detaillierte Inhalt vonWie erreicht man in Go ein JSON-Unmarshal mit Berücksichtigung der Groß- und Kleinschreibung?. 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