Maison > développement back-end > Golang > Comment gérer les erreurs « json : impossible de transformer la chaîne en valeur Go de type float64 » lors du décodage de JSON ?

Comment gérer les erreurs « json : impossible de transformer la chaîne en valeur Go de type float64 » lors du décodage de JSON ?

Barbara Streisand
Libérer: 2024-12-31 14:15:10
original
559 Les gens l'ont consulté

How to Handle

Décodage JSON avec conversion de type de chaîne en Float64

Lors du décodage d'une chaîne JSON contenant un nombre à virgule flottante, il est possible de rencontrer le erreur "json : impossible de transformer la chaîne en valeur Go de type float64." Ce problème survient lorsque le décodeur JSON tente de convertir automatiquement le nombre d'une chaîne en type float64.

Pour résoudre ce problème, vous pouvez indiquer explicitement au décodeur JSON que la chaîne représente un float64 en utilisant le ", string" dans la définition de la structure :

type Product struct {
    Name  string
    Price float64 `json:",string"`
}
Copier après la connexion

En ajoutant cette balise, le décodeur JSON traitera le champ "price" comme une chaîne encodée float64, permettant une conversion appropriée lors du décodage.

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)
    }
}
Copier après la connexion

Avec cette modification, le programme va désormais décoder avec succès la chaîne JSON et convertir correctement le champ "prix" en un type float64.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal