Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gehe ich mit dem Fehler „ungültige Operation: d[\\\"data\\\"] (Typschnittstelle {} unterstützt keine Indizierung) in Golang beim Zugriff auf verschachtelte JSON-Daten um?“

Wie gehe ich mit dem Fehler „ungültige Operation: d[\\\"data\\\"] (Typschnittstelle {} unterstützt keine Indizierung) in Golang beim Zugriff auf verschachtelte JSON-Daten um?“

Susan Sarandon
Susan SarandonOriginal
2024-10-26 09:40:02651Durchsuche

How to Handle the

Behebung des Fehlers: „Ungültiger Vorgang: d[„Daten“] (Typschnittstelle {} unterstützt keine Indizierung)“

angetroffen beim Zugriff auf verschachtelte JSON-Daten in Golang.

Beim Arbeiten mit dynamischen JSON-Antworten kommt es nicht selten vor, dass der Fehler „Ungültiger Vorgang: (Typschnittstelle {} unterstützt keine Indizierung)“ auftritt. Dies tritt auf, wenn Sie versuchen, eine Schnittstelle wie in d["data"] zu indizieren, was eine bestimmte Typzusicherung für den entsprechenden Schlüsselwertspeicher erfordert, z. B. map[string]interface{}.

To Um dieses Problem zu lösen, müssen Sie zunächst sicherstellen, dass die Variable d typmäßig als Map[string]interface{} bestätigt wird, wie unten gezeigt:

<code class="go">test := d.(map[string]interface{})["data"].(map[string]interface{})["type"]</code>

Mit dieser Behauptung geben Sie ausdrücklich an, dass d ist vom Typ „map[string]interface{}“ und ermöglicht Ihnen den Zugriff auf seine Schlüssel. Anschließend können Sie auf die „Daten“ zugreifen und die Eigenschaft „Typ“ aus der verschachtelten Karte abrufen.

Als alternativen Ansatz können Sie d auch direkt als Map[string]interface{} deklarieren:

<code class="go">var d map[string]interface{}
json.NewDecoder(response.Body).Decode(&d)
test := d["data"].(map[string]interface{})["type"]</code>

Auf diese Weise entfällt die Notwendigkeit der ersten Typzusicherung.

Um diese Vorgänge zu unterstützen, sollten Sie die Bibliothek github.com/icza/dyno verwenden, die auf die Handhabung von Dynamik spezialisiert ist Objekte und bietet praktische Methoden zum Navigieren und Bearbeiten von JSON-Daten.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit dem Fehler „ungültige Operation: d[\\\"data\\\"] (Typschnittstelle {} unterstützt keine Indizierung) in Golang beim Zugriff auf verschachtelte JSON-Daten um?“. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn