Heim >Backend-Entwicklung >Golang >Wie kann ich flexible boolesche Werte (0/1 und wahr/falsch) aus JSON in Go entmarshalieren?

Wie kann ich flexible boolesche Werte (0/1 und wahr/falsch) aus JSON in Go entmarshalieren?

Linda Hamilton
Linda HamiltonOriginal
2024-12-04 17:42:12657Durchsuche

How Can I Unmarshal Flexible Boolean Values (0/1 and true/false) from JSON in Go?

JSON-Unmarshalling flexibler boolescher Werte

Beim Umgang mit JSON-Datenquellen, die boolesche Werte inkonsistent sowohl als 0/1 als auch als falsch/wahr darstellen , bietet das Standardpaket „encoding/json“ möglicherweise nicht genügend Flexibilität für das Parsen. Um dieses Problem zu beheben, können wir eine benutzerdefinierte UnmarshalJSON-Methode implementieren, um die akzeptierten booleschen Formate zu erweitern.

Im bereitgestellten Beispiel definieren wir eine Struktur namens MyType mit zwei booleschen Feldern: AsBoolean und AlsoBoolean. Die entsprechende JSON-Eingabe enthält die Werte „true“ und „1“ für die jeweiligen Felder.

Um sowohl 0 als auch false als boolesche Werte zu entmarshalieren, erstellen wir einen neuen Typ ConvertibleBoolean und implementieren dessen UnmarshalJSON-Methode. Innerhalb der Methode prüfen wir die Eingabedaten als String und ermitteln den entsprechenden booleschen Wert basierend auf den folgenden Bedingungen:

  • Wenn der String „1“ oder „wahr“ ist, legen wir den booleschen Wert fest auf true.
  • Wenn die Zeichenfolge „0“ oder „false“ ist, setzen wir den booleschen Wert auf false.
  • Alle anderen Eingabeergebnisse in einem Fehler mit einer beschreibenden Meldung.

Durch Anpassen der UnmarshalJSON-Methode können wir das standardmäßige JSON-Unmarshaling-Verhalten erweitern und die nicht standardmäßigen booleschen Darstellungen in den Eingabe-JSON-Daten berücksichtigen. Dieser Ansatz ermöglicht es uns, die JSON-Eingabe in die erwarteten booleschen Werte zu entpacken und die MyType-Struktur entsprechend zu füllen.

Das obige ist der detaillierte Inhalt vonWie kann ich flexible boolesche Werte (0/1 und wahr/falsch) aus JSON in Go 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