Maison > développement back-end > Golang > Comment itérer efficacement sur des objets JSON imbriqués dans Go ?

Comment itérer efficacement sur des objets JSON imbriqués dans Go ?

Mary-Kate Olsen
Libérer: 2024-11-27 12:55:11
original
649 Les gens l'ont consulté

How to Efficiently Iterate Over Nested JSON Objects in Go?

Boucle sur des objets JSON avec des objets imbriqués

Lorsque vous traitez des données JSON, il est courant de rencontrer des objets contenant des objets ou des tableaux imbriqués. Itérer sur ces structures peut être une tâche complexe dans Go.

Dans l'exemple fourni, nous avons une entrée JSON avec plusieurs niveaux d'imbrication. La tâche consiste à parcourir les objets et à extraire les paires clé-valeur sous forme de chaînes.

Utilisation des assertions de type et des fonctions récursives

L'approche recommandée consiste à utiliser des assertions de type et des fonctions récursives. Une fonction récursive peut descendre à travers des structures JSON complexes, s'appelant de manière récursive sur chaque objet ou tableau imbriqué.

Voici un exemple de fonction récursive qui parcourt la structure JSON imbriquée et imprime les paires clé-valeur :

func parseMap(m map[string]interface{}) {
    for key, val := range m {
        switch val.(type) {
        case map[string]interface{}:
            parseMap(val.(map[string]interface{}))
        case []interface{}:
            parseArray(val.([]interface{}))
        default:
            fmt.Println(key, ":", val)
        }
    }
}

func parseArray(arr []interface{}) {
    for i, val := range arr {
        switch val.(type) {
        case map[string]interface{}:
            parseMap(val.(map[string]interface{}))
        case []interface{}:
            parseArray(val.([]interface{}))
        default:
            fmt.Println("Index:", i, ":", val)
        }
    }
}
Copier après la connexion

Dans cet exemple, la fonction parseMap est appelée de manière récursive sur les cartes imbriquées, et la fonction parseArray est appelée récursivement sur des tableaux imbriqués. En utilisant des assertions de type, nous pouvons déterminer le type de chaque valeur et la gérer en conséquence.

Exécuter le code

Pour exécuter le code, vous pouvez désorganiser le JSON d'entrée dans une carte à l'aide du json .Fonction Unmarshal. Ensuite, appelez la fonction parseMap, en passant la carte non marshallée comme argument. La sortie sera imprimée, affichant les paires clé-valeur extraites.

Conclusion

Cette approche utilisant des assertions de type et des fonctions récursives fournit un moyen méthodique et efficace de parcourir et d'inspecter les valeurs dans un Structure JSON. En comprenant la structure des données et en utilisant ces techniques, vous pouvez extraire et traiter efficacement les paires clé-valeur pour une analyse ou un traitement plus approfondi.

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