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.
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) } } }
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.
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.
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!