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
Libérer: 2025-01-04 21:22:43
original
858 Les gens l'ont consulté

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

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

L'exécution de ce code mis à jour affichera désormais le résultat souhaité :

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

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