Maison >développement back-end >Golang >Comment gérer la conversion de chaîne JSON en Float64 dans Go ?

Comment gérer la conversion de chaîne JSON en Float64 dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 21:22:43891parcourir

How to Handle JSON String to Float64 Conversion in Go?

Décodage JSON avec conversion de type Float64

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!

Déclaration:
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