Heim > Backend-Entwicklung > Golang > Wie gehe ich mit den Fehlern „json: String kann nicht in Go-Wert vom Typ float64 entmarshaliert werden' beim Dekodieren von JSON um?

Wie gehe ich mit den Fehlern „json: String kann nicht in Go-Wert vom Typ float64 entmarshaliert werden' beim Dekodieren von JSON um?

Barbara Streisand
Freigeben: 2024-12-31 14:15:10
Original
559 Leute haben es durchsucht

How to Handle

JSON mit Typkonvertierung von String in Float64 dekodieren

Beim Dekodieren eines JSON-Strings, der eine Gleitkommazahl enthält, kann es vorkommen, dass Fehler „json: String kann nicht in Go-Wert vom Typ float64 entmarshaliert werden.“ Dieses Problem tritt auf, wenn der JSON-Decoder versucht, die Zahl automatisch von einer Zeichenfolge in einen Float64-Typ umzuwandeln.

Um dieses Problem zu lösen, können Sie dem JSON-Decoder explizit mitteilen, dass die Zeichenfolge einen Float64-Typ darstellt, indem Sie „, string“-Tag in der Strukturdefinition:

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

Durch das Hinzufügen dieses Tags behandelt der JSON-Decoder das Feld „price“ als string-codiertes float64, Dies ermöglicht eine ordnungsgemäße Konvertierung während der Dekodierung.

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)
    }
}
Nach dem Login kopieren

Mit dieser Änderung dekodiert das Programm nun erfolgreich die JSON-Zeichenfolge und konvertiert das Feld „Preis“ korrekt in einen Float64-Typ.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit den Fehlern „json: String kann nicht in Go-Wert vom Typ float64 entmarshaliert werden' beim Dekodieren von JSON 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