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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-28 14:56:11173parcourir

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

Analyse JSON des int64 : gestion des valeurs nulles dans Go

Lors de l'analyse des flux JSON dans Go, la gestion des valeurs nulles peut être un défi, en particulier lorsqu'il s'agit de types int64. Comme le montre l'exemple fourni, tenter de désorganiser un objet JSON contenant une valeur nulle dans un champ struct de type int64 entraînera une erreur en raison de l'incompatibilité de type.

Utilisation d'un pointeur pour adresser Null. Valeurs

Une solution simple à ce problème consiste à utiliser un pointeur vers int64. Un pointeur peut être nul, représentant une valeur nulle, ou il peut pointer vers une instance int64 valide avec une valeur associée. Cette approche est prise en charge par le package JSON de Go.

type World struct {
    Data *int64
}

En modifiant la définition de structure ci-dessus pour utiliser un pointeur vers int64, nous pouvons désormais réussir à désorganiser les données JSON sans rencontrer l'erreur précédente. Le *int64 permet à l'analyseur JSON de représenter les valeurs nulles sous forme de pointeurs nuls.

Mappage de valeurs nulles à des valeurs non nulles

Si vous le souhaitez, vous pouvez mapper les valeurs nulles à une valeur non nulle, telle que -1 ou MinValue. Ceci peut être réalisé en traitant de manière personnalisée les données JSON après le démarshalage. Par exemple :

func MapNull(data *int64) int64 {
    if data == nil {
        return -1
    }
    return *data
}

En appelant la fonction MapNull après le démarshaling, vous pouvez remplacer toutes les valeurs nulles par la représentation non nulle souhaitée.

Conclusion

La gestion des valeurs nulles lors de l'analyse des données JSON contenant des types int64 dans Go peut être obtenue en utilisant un pointeur vers int64. Cette technique permet à l'analyseur JSON de représenter des valeurs nulles et de préserver la structure des données d'origine. Si nécessaire, un post-traitement personnalisé peut être appliqué pour mapper les valeurs nulles à des représentations alternatives non nulles.

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