Dans ce scénario, vous disposez d'une chaîne JSON contenant un nombre flottant qui doit être décodée en une structure Golang. La tentative initiale de décodage échoue en raison de la non-concordance entre la représentation sous forme de chaîne entrante du nombre flottant et le type float64 dans la structure.
Pour résoudre ce problème, il est nécessaire de demander au décodeur JSON d'interpréter la valeur de la chaîne comme un flotteur64. Ceci peut être réalisé en ajoutant la balise ,string au champ Price dans la définition de la structure :
type Product struct { Name string Price float64 `json:",string"` }
Avec cette modification, le décodeur convertira avec succès la représentation sous forme de chaîne en une valeur float64. Le code Golang mis à jour :
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) } }
L'exécution de ce code mis à jour affichera désormais le résultat souhaité :
{Name:Galaxy Nexus Price:3460}
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!