Heim >Backend-Entwicklung >Golang >Wie handhabe ich die Konvertierung von JSON-Strings in Float64 in Go?

Wie handhabe ich die Konvertierung von JSON-Strings in Float64 in Go?

Susan Sarandon
Susan SarandonOriginal
2025-01-04 21:22:43867Durchsuche

How to Handle JSON String to Float64 Conversion in Go?

JSON mit Float64-Typkonvertierung dekodieren

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!

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