Maison > développement back-end > Golang > Comment gérer les valeurs entières nulles lors de la désorganisation de JSON dans Go ?

Comment gérer les valeurs entières nulles lors de la désorganisation de JSON dans Go ?

Susan Sarandon
Libérer: 2024-11-28 10:12:12
original
244 Les gens l'ont consulté

How to Handle Null Integer Values When Unmarshalling JSON in Go?

JSON Marshals Null Integer Values

Dans Go, l'analyse des flux JSON peut parfois entraîner des complications, en particulier lorsqu'il s'agit d'entiers et de valeurs nulles. Explorons un problème courant et sa résolution à l'aide de types nullables.

Problème :

Lors de l'analyse de données JSON contenant des entiers, vous pouvez rencontrer l'erreur suivante :

json: cannot unmarshal null into Go value of type int64
Copier après la connexion

Cette erreur se produit lorsque vous avez des entiers nullables dans le JSON, que le package Go JSON standard ne peut pas gérer directement.

Solution :

Pour résoudre ce problème, envisagez d'utiliser des pointeurs vers des entiers. Un pointeur peut être soit nul (représentant une valeur nulle), soit pointer vers un entier avec une valeur associée. Voici comment l'implémenter :

import (
    "encoding/json"
    "fmt"
)

var d = []byte(`{ "world":[{"data": 2251799813685312}, {"data": null}]}`)

type jsonobj struct{ World []*int64 }
type World struct{ Data *int64 }

func main() {
    var data jsonobj
    jerr := json.Unmarshal(d, &data)
    if jerr != nil {
        fmt.Println(jerr)
    }

    for _, w := range data.World {
        if w == nil {
            fmt.Println("Got a null value")
        } else {
            fmt.Println(*w)
        }
    }
}
Copier après la connexion

Dans cet exemple modifié :

  • Nous définissons un pointeur vers int64 dans la structure World (*int64) pour autoriser les entiers nullables.
  • La structure jsonobj contient un tableau de pointeurs World, lui permettant de gérer à la fois les pointeurs non nuls et nuls. entiers.

Lors de l'analyse du JSON, il gère correctement les valeurs entières numériques et nulles et les imprime en conséquence :

Got a null value
2251799813685312
Copier après la connexion

Cette approche fournit un moyen simple et efficace de gérer les entiers nullables. dans Go lors de l'analyse des flux JSON.

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