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
Freigeben: 2024-10-26 09:40:02
Original
654 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!