In diesem Szenario haben Sie eine JSON-Zeichenfolge mit einer Float-Zahl, die in eine Golang-Struktur dekodiert werden muss. Der erste Decodierungsversuch schlägt fehl, da die eingehende String-Darstellung der Float-Nummer und der Typ float64 in der Struktur nicht übereinstimmen.
Um dieses Problem zu beheben, muss der JSON-Decoder angewiesen werden, den String-Wert als zu interpretieren ein float64. Dies kann durch Hinzufügen des String-Tags zum Feld „Preis“ in der Strukturdefinition erreicht werden:
type Product struct { Name string Price float64 `json:",string"` }
Mit dieser Änderung konvertiert der Decoder die String-Darstellung erfolgreich in einen Float64-Wert. Der aktualisierte Golang-Code:
package main import ( "encoding/json" "fmt" ) type Product struct { Name string Price float64 `json:",string"` } func main() { s := `{"name":"Galaxy Nexus", "price":"3460.00"}` var pro Product err := json.Unmarshal([]byte(s), &pro) if err == nil { fmt.Printf("%+v\n", pro) } else { fmt.Println(err) fmt.Printf("%+v\n", pro) } }
Beim Ausführen dieses aktualisierten Codes wird nun das gewünschte Ergebnis ausgegeben:
{Name:Galaxy Nexus Price:3460}
Das obige ist der detaillierte Inhalt vonWie handhabe ich die Konvertierung von JSON-Strings in Float64 in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!