Heim >Backend-Entwicklung >Golang >Wie kann ich flexible boolesche Werte (0/1 und wahr/falsch) aus JSON in Go entmarshalieren?
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:
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!