Heim >Backend-Entwicklung >Golang >Wie greife ich in Golang auf verschachtelte JSON-Daten zu und behebe den Fehler „Typschnittstelle {} unterstützt keine Indexierung'?
Zugriff auf verschachtelte JSON-Daten in Golang: Behebung des Fehlers „Typschnittstelle {} unterstützt keine Indizierung“
Beim Arbeiten mit verschachtelten JSON-Antworten in Golang, es ist wichtig, mit Datentypen richtig umzugehen. Wenn Sie auf den Fehler „Ungültiger Vorgang: d[„Daten“] (Typschnittstelle {} unterstützt keine Indizierung)“ stoßen, tritt dieser normalerweise auf, weil Sie versuchen, eine Schnittstellenvariable {} direkt zu indizieren.
Zu Um dieses Problem zu beheben, müssen Sie eine weitere Typzusicherung durchführen, um den richtigen Datentyp anzugeben. Lassen Sie uns in die Lösung eintauchen:
Typ Assertion zu einer Zwischenkarte
Die Variable d ist vom Typ interface{}, einem dynamischen Typ in Golang. Sie müssen es einem bestimmten Typ zuordnen, um auf seine Felder zugreifen zu können. In diesem Fall wissen wir, dass die Antwort ein „Daten“-Feld enthält, das eine Zuordnung von Zeichenfolgen zu Schnittstellen enthält. Sie können also eine weitere Typzusicherung hinzufügen, um d vor der Indizierung in „map[string]interface{}“ umzuwandeln:
<code class="go">test := d.(map[string]interface{})["data"].(map[string]interface{})["type"]</code>
Jetzt speichert test den Wert des Felds „type“ in der verschachtelten Datenzuordnung.
Optionale Typzusicherung auf d
Wenn Sie d von Anfang an als Map[string]interface{} deklarieren, können Sie die erste Typzusicherung überspringen:
<code class="go">var d map[string]interface{} ... test := d["data"].(map[string]interface{})["type"]</code>
Dadurch wird d direkt in den richtigen Kartentyp umgewandelt, sodass keine Zwischentypzusicherung erforderlich ist.
Schlussfolgerung
Durch das Verständnis der Daten Wenn Sie Typen verwenden und die entsprechenden Typzusicherungen ausführen, können Sie in Golang auf verschachtelte JSON-Antworten zugreifen und damit arbeiten, ohne dass es zu Indizierungsfehlern kommt. Denken Sie daran, dass die Schnittstelle{} von Go vielseitig ist, für den Zugriff auf bestimmte Typen jedoch möglicherweise zusätzliche Verarbeitung erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie greife ich in Golang auf verschachtelte JSON-Daten zu und behebe den Fehler „Typschnittstelle {} unterstützt keine Indexierung'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!