Maison >développement back-end >Golang >Comment gérer les valeurs Null int64 lors de l'analyse de JSON dans Go ?

Comment gérer les valeurs Null int64 lors de l'analyse de JSON dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-30 10:03:111098parcourir

How to Handle Null int64 Values When Parsing JSON in Go?

Analyse de JSON avec des valeurs nulles int64 dans Go

Lors de l'analyse de données JSON contenant des valeurs int64, il est possible de rencontrer des valeurs nulles. Par défaut, le package Go encoding/json tente de décomposer les valeurs nulles directement dans les champs int64, ce qui entraîne une erreur car il ne peut pas convertir null en int64.

Pour résoudre ce problème, envisagez d'utiliser des pointeurs au lieu de champs int64 directs. . Les pointeurs peuvent être nuls ou pointer vers un int64 avec une valeur associée. Voici un exemple :

import (
    "encoding/json"
    "fmt"
)

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

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

func main() {
    var data jsonobj
    jerr := json.Unmarshal(d, &data)
    fmt.Println(jerr)
    if data.World[1].Data != nil {
        fmt.Println(*data.World[1].Data)
    }
}

En utilisant un pointeur, le champ de données dans la structure World peut soit être nul si la valeur JSON est nulle, soit pointer vers une valeur int64 dans le cas contraire. Cela nous permet de gérer les valeurs nulles avec élégance et sans erreurs.

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