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!