Maison > développement back-end > Golang > Comment gérer les erreurs de conversion String-to-Float64 lors du décodage JSON dans Go ?

Comment gérer les erreurs de conversion String-to-Float64 lors du décodage JSON dans Go ?

Barbara Streisand
Libérer: 2024-12-25 00:39:11
original
199 Les gens l'ont consulté

How to Handle String-to-Float64 Conversion Errors When Decoding JSON in Go?

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

Dans Golang, le décodage des chaînes JSON contenant des nombres flottants peut parfois entraîner des erreurs lors de l'utilisation de types comme float64. Ce qui suit examine le problème et propose une solution.

Considérez l'entrée JSON suivante :

{"name":"Galaxy Nexus", "price":"3460.00"}
Copier après la connexion

Et un type Go correspondant :

type Product struct {
    Name  string
    Price float64
}
Copier après la connexion

Démarshalisation du JSON l'utilisation du package json intégré peut produire une erreur :

json: cannot unmarshal string into Go value of type float64
Copier après la connexion

Cette erreur se produit car le champ de prix JSON est un chaîne, tandis que le champ Go Price est un float64. Pour résoudre ce problème, informez l'interpréteur JSON que le champ price est un float64 codé en chaîne :

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

En ajoutant "string" à la balise json, l'interpréteur convertira automatiquement le prix de la chaîne en float64 pendant décodage. L'exécution du code modifié produira désormais le résultat attendu :

{Name:Galaxy Nexus Price:3460}
Copier après la connexion

Dans les cas où une conversion de type est nécessaire pendant le décodage JSON, l'utilisation de la balise json avec "string" (ou d'autres spécificateurs de conversion de type) fournit une méthode simple et solution efficace.

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