„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie dekodieren Sie JSON -Zeichenfolgen mit Float64 -Werten, die als Saiten in Go gespeichert sind?

Wie dekodieren Sie JSON -Zeichenfolgen mit Float64 -Werten, die als Saiten in Go gespeichert sind?

Gepostet am 2025-03-23
Durchsuche:638

How to Decode JSON Strings with Float64 Values Stored as Strings in Go?

decodieren jSON mit Typ Conversion von String in float64 in Go

an JSON -Strings analysieren, die Float64 -Werte enthalten, können Herausforderungen stellen, wenn die Werte als Strings geliefert werden. Um dieses Problem anzugehen, bietet Go eine einfache Lösung.

den Fehler verstehen:

beim Versuch, eine JSON -String wie "{" Name ":" Galaxy Nexus "zu dekodieren," Preis ":" 3460.00 "}" Mit der JSONSHALUSHAL -Funktion, die die folgenden Folgen ergeben, werden Sie möglicherweise mit der JSON -Funktion. Fehler:

json: cannot unmarshal string into Go value of type float64

dieser Fehler vorkommen, weil der JSON -Decoder versucht, die String -Darstellung der Float64 -Nummer in einen Float64 -Wert direkt zu konvertieren, was nicht unterstützt wird. Beheben Sie dieses Problem, Sie müssen den Decoder explizit anweisen, die Zeichenfolge als Float64 mithilfe einer Annotation von Typ Conversion zu behandeln. Diese Annotation wird der Felddefinition in der Produktstruktur hinzugefügt:

Geben Sie die Produktstruktur {ein Name Zeichenfolge Preis float64 `JSON:", String "` } the ", String" tag dem JSON -Decoder, dass das Preisfeld ein Zeichenfolge ist, der in einen Float64 konvertiert werden sollte. importieren ( "Codierung/JSON" "fmt" ) Geben Sie Produktstrukturen ein { Name Zeichenfolge Preis float64 `JSON:", String "` } func main () { S: = `{" Name ":" Galaxy Nexus "," Preis ":" 3460.00 "}` Var Pro -Produkt err: = json.unmarshal ([] byte (s), & pro) Wenn er == nil { fmt.printf ("% v \ n", pro) } anders { fmt.println (err) fmt.printf ("% v \ n", pro) } }

erwartete Ausgabe:
type Product struct {
    Name  string
    Price float64 `json:",string"`
}

diesen Code erzeugt die erwartete Ausgabe:

{name: galaxy nexus price: 3460} the json float64.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3