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"}
Et un type Go correspondant :
type Product struct { Name string Price float64 }
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
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"` }
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}
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!