I dynamische/random JSON Antworten in GO, mit verschachtelten DatenGo Lang Hilfe - Zugriff auf Array/Scheibe Schnittstellen
body, _ := ioutil.ReadAll(response.Body)
resp := make(map[string]interface{})
err = json.Unmarshal(body, &resp)
fmt.Printf("BODY: %T<\n", body)
fmt.Printf("BODY: %s<\n", body)
fmt.Printf("RESP: %s<\n", resp)
fmt.Printf("RESP: %T<\n", resp)
fmt.Printf("RESP[results]: %T<\n", resp["results"])
fmt.Printf("RESP[results]: %s<\n", resp["results"])
Körper ist das JSON resultiert aus dem HTTP-Server zu entschlüsseln bin versucht, und ich entordnen es und das Ergebnis scheint ein Stück von Bytes zu sein.
KÖRPER: [] uint8
BODY: { "Ergebnisse": [{ "Code": 500.0 "Fehler": "Konfigurationsdatei 'c2-web-2.conf' existiert bereits" [] , "status": "Objekt konnte nicht erstellt werden."}]}
Also entmare ich es in resp und das funktioniert wie erwartet.
RESP: map [string] Schnittstelle {}
RESP: Karte [Ergebnisse: [Karte [code:% s (float64 = 500) Fehler: [Konfigurationsdatei 'c2-web-2.conf' existiert bereits.] status: Objekt konnte nicht erstellt werden.]]] <
Ich kann mit den wichtigsten Ergebnissen auf die Karte zugreifen.
RESP [Ergebnisse]: [] {} Schnittstelle
RESP [Ergebnisse]: [Karte [code:% s (float64 = 500) Fehler: [Konfigurationsdatei ‚conf.d/hosts/C2- web-2.conf 'existiert bereits.] status: Objekt konnte nicht erstellt werden.]] <
Nun, was ich will, ist es die "Code", "Fehler" und "Status", die in resp [" Ergebnisse "] Dies sieht aus wie ein Array oder Slice und ich habe versucht, es indizieren, aber ich bekomme den Fehler zur Kompilierzeit
./create_host.go:62: ungültiger Vorgang: resp [" Ergebnisse "] [0] (Typschnittstelle {} unterstützt keine Indizierung)
Ich habe viel gegoogelt, habe versucht, die Daten innerhalb von resp [results] usw. zu entpacken, aber nach ein paar Tagen habe ich keine großen Fortschritte gemacht.
Wie soll ich auf die Karte zugreifen, die ein Mitglied eines Arrays zu sein scheint? Die Datenstruktur ist nicht garantiert, daher kann ich keine Struktur erstellen und bin nicht darauf eingehen.
Dank