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