Heim > Backend-Entwicklung > Golang > Wie gehe ich mit String-zu-Float64-Konvertierungsfehlern beim Dekodieren von JSON in Go um?

Wie gehe ich mit String-zu-Float64-Konvertierungsfehlern beim Dekodieren von JSON in Go um?

Barbara Streisand
Freigeben: 2024-12-25 00:39:11
Original
171 Leute haben es durchsucht

How to Handle String-to-Float64 Conversion Errors When Decoding JSON in Go?

JSON mit Typkonvertierung von String in Float64 dekodieren

In Golang kann das Dekodieren von JSON-Strings mit Float-Zahlen manchmal zu Fehlern bei der Verwendung von Typen führen wie float64. Im Folgenden wird auf das Problem eingegangen und eine Lösung bereitgestellt.

Berücksichtigen Sie die folgende JSON-Eingabe:

{"name":"Galaxy Nexus", "price":"3460.00"}
Nach dem Login kopieren

Und einen entsprechenden Go-Typ:

type Product struct {
    Name  string
    Price float64
}
Nach dem Login kopieren

Unmarshaling des JSON Die Verwendung des integrierten JSON-Pakets kann zu einem Fehler führen:

json: cannot unmarshal string into Go value of type float64
Nach dem Login kopieren

Dieser Fehler tritt auf, weil das JSON-Preisfeld ein ist Zeichenfolge, während das Feld „Go Price“ ein Float64-Wert ist. Um dieses Problem zu beheben, teilen Sie dem JSON-Interpreter mit, dass es sich bei dem Preisfeld um einen string-codierten float64-Wert handelt:

type Product struct {
    Name  string
    Price float64 `json:",string"`
}
Nach dem Login kopieren

Durch Hinzufügen von „string“ zum JSON-Tag konvertiert der Interpreter den String-Preis währenddessen automatisch in einen float64-Wert Dekodierung. Das Ausführen des geänderten Codes erzeugt nun die erwartete Ausgabe:

{Name:Galaxy Nexus Price:3460}
Nach dem Login kopieren

In Fällen, in denen während der JSON-Decodierung eine Typkonvertierung erforderlich ist, bietet die Verwendung des JSON-Tags mit „string“ (oder anderen Typkonvertierungsspezifizierern) eine einfache und einfache Möglichkeit effektive Lösung.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit String-zu-Float64-Konvertierungsfehlern beim Dekodieren von JSON in Go um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage