Maison > développement back-end > Golang > Comment puis-je parcourir efficacement les structures JSON imbriquées dans Go ?

Comment puis-je parcourir efficacement les structures JSON imbriquées dans Go ?

Patricia Arquette
Libérer: 2024-11-28 18:31:11
original
739 Les gens l'ont consulté

How Can I Efficiently Iterate Over Nested JSON Structures in Go?

Boucle à travers les structures JSON imbriquées dans Go

Cette question explore comment parcourir efficacement les structures JSON imbriquées dans Go. Considérez l'exemple JSON fourni dans la question. L'objectif est d'extraire toutes les paires clé-valeur de cette structure JSON complexe.

En utilisant une combinaison de commutation de type et de récursivité, une fonction personnalisée peut être implémentée pour analyser une carte de clés de chaîne pour interfacer les valeurs :

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

De même, un tableau de valeurs d'interface peut être analysé de manière récursive :

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

En appelant ces fonctions de manière récursive, la structure JSON peut être itérée, extrayant toutes les paires clé-valeur dans le format souhaité.

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