Maison >développement back-end >Golang >Pourquoi est-ce que j'obtiens une erreur \'interface conversion: interface {} is []interface {}, not map[string]interface {}\' lors de la conversion d'une interface en carte ?
Erreur de conversion d'interface : mappage non valide
Une erreur se produit lors de l'analyse JSON lors de la tentative de conversion d'une interface en carte, entraînant le message "conversion d'interface : l'interface {} est []interface {}, pas map[string]interface {}."
Explication
L'erreur indique une inadéquation entre types de données. Dans l'extrait de code fourni, la ligne suivante extrait les résultats de la liste des résultats organiques :
result := fmt.Sprintf("%v", response["organic_results"].(map[string]interface{})["title"])
L'hypothèse est que la réponse["organic_results"] est une carte et que sa valeur doit être convertie en map[string ]interface{} pour accéder à la valeur de titre spécifique. Cependant, le type de données réel de la réponse["organic_results"] est une tranche d'interfaces ([]interface{}), pas une carte.
Solution
Pour résolvez l'erreur, le code doit être corrigé en conséquence :
for _, item := range response["organic_results"].([]interface{}) { fmt.Sprintf("%v", item.(map[string]interface{})["title"]) }
Ici, la boucle parcourt chaque élément de la tranche []interface{}, et chaque élément est converti en une map[string]interface{ } pour extraire la valeur du titre.
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!