Maison > développement back-end > Golang > Comment puis-je désorganiser des tableaux JSON avec des types de données mixtes dans Go ?

Comment puis-je désorganiser des tableaux JSON avec des types de données mixtes dans Go ?

Patricia Arquette
Libérer: 2024-11-27 07:06:10
original
387 Les gens l'ont consulté

How Can I Unmarshal JSON Arrays with Mixed Data Types in Go?

Désassembler des tableaux JSON avec des types de valeurs mixtes

Désassembler un tableau JSON contenant des valeurs de différents types peut poser un défi dans Go en raison de l'exigence pour une définition de type explicite dans les tableaux Go.

Cas Étude :

Considérons l'exemple JSON non valide suivant :

["NewYork", 123]
Copier après la connexion

Une tentative de décodage de ce tableau en tableau Go échouerait car le tableau Go nécessite un type fixe, qui est inconnu dans ce cas.

Solution :

Pour surmonter cette limitation, Go fournit le type interface{}, qui permet le stockage de valeurs de tout type. En utilisant interface{}, il devient possible de désorganiser les tableaux JSON contenant des types de valeurs mixtes, comme démontré ci-dessous :

const j = `{"NYC": ["NewYork", 123]}`

type UntypedJson map[string][]interface{}

func main() {
    ut := UntypedJson{}
    fmt.Println(json.Unmarshal([]byte(j), &ut))
    fmt.Printf("%#v", ut)
}
Copier après la connexion

Dans cet exemple, nous définissons un type personnalisé UntypedJson comme une carte de clés de chaîne vers des tranches de interface{}. Le tableau JSON est ensuite désorganisé dans l'instance UntypedJson. L'instruction fmt.Printf affiche les données non marshalées, qui contiennent les valeurs mixtes du tableau JSON.

En utilisant le type interface{}, il devient possible de démarsaler des tableaux JSON contenant des valeurs de différents types, offrant ainsi une plus grande visibilité. solution flexible et polyvalente pour des scénarios de données complexes.

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