Heim >Backend-Entwicklung >Golang >Warum erhalte ich die Fehlermeldung „Schnittstellenkonvertierung: Schnittstelle {} ist []Schnittstelle {}, nicht Karte[Zeichenfolge]Schnittstelle {}', wenn ich eine Schnittstelle in eine Karte konvertiere?
Fehler bei der Schnittstellenkonvertierung: Ungültige Zuordnung
Während der JSON-Analyse tritt beim Versuch, eine Schnittstelle in eine Karte zu konvertieren, ein Fehler auf, der zu der Meldung führt „Schnittstellenkonvertierung: Schnittstelle {} ist []Schnittstelle {}, nicht Map[string]Schnittstelle {}."
Erklärung
Der Fehler deutet auf eine Nichtübereinstimmung zwischen Datentypen hin. Im bereitgestellten Codeausschnitt extrahiert die folgende Zeile Ergebnisse aus der Liste der organischen Ergebnisse:
result := fmt.Sprintf("%v", response["organic_results"].(map[string]interface{})["title"])
Es wird davon ausgegangen, dass „response["organic_results"] eine Karte ist und ihr Wert als „map[string““ umgewandelt werden sollte ]interface{}, um auf den spezifischen Titelwert zuzugreifen. Der eigentliche Datentyp der Antwort["organic_results"] ist jedoch ein Abschnitt von Schnittstellen ([]interface{}), keine Karte.
Lösung
Zu Um den Fehler zu beheben, sollte der Code entsprechend korrigiert werden:
for _, item := range response["organic_results"].([]interface{}) { fmt.Sprintf("%v", item.(map[string]interface{})["title"]) }
Hier durchläuft die Schleife jedes Element im []interface{}-Slice, und jedes Element wird in eine Map[string]interface{} umgewandelt, um den Titelwert zu extrahieren.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Schnittstellenkonvertierung: Schnittstelle {} ist []Schnittstelle {}, nicht Karte[Zeichenfolge]Schnittstelle {}', wenn ich eine Schnittstelle in eine Karte konvertiere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!