So verarbeiten Sie JSON-Arrays in Go
Die Abfrage stellt eine Herausforderung beim Parsen von JSON-Arrays in Go dar. Ein JSON-Array ist eine Sammlung von Objekten, und im gegebenen Beispiel sind die von einem API-Aufruf zurückgegebenen Daten ein Array komplexer Objekte.
Um dieses Array zu analysieren, müssen wir eine Go-Struktur definieren, die das widerspiegelt Struktur der Objekte im Array. Beginnen wir mit der Definition der PublicKey-Struktur:
type PublicKey struct { name string price string }
Als nächstes müssen wir eine KeysResponse-Struktur definieren, um das gesamte Array von PublicKey-Objekten darzustellen:
type KeysResponse struct { Collection []PublicKey }
Wir entmarshalieren dann den JSON in eine Variable vom Typ KeysResponse:
keys := make([]PublicKey, 0) err := json.Unmarshal([]byte(s), &keys) if err == nil { fmt.Printf("%+v\n", keys) } else { fmt.Println(err) fmt.Printf("%+v\n", keys) }
Die json.Unmarshal-Funktion wird automatisch ausgeführt Füllen Sie die Schlüsselvariable mit den analysierten Daten aus dem JSON. Der Code der ursprünglichen Frage enthielt jedoch ein übersehenes Detail: Die Felder der PublicKey-Struktur müssen exportiert werden (mit einem Großbuchstaben beginnen).
Nach dieser Änderung analysiert der Code das JSON-Array korrekt und gibt es aus die Ergebnisse im gewünschten Format:
[{Name:Galaxy Nexus Price:3460.00} {Name:Galaxy Nexus Price:3460.00}]
Beachten Sie, dass der JSON-Text in der Frage Feldnamen mit Kleinbuchstaben enthält, das JSON-Paket jedoch intelligent genug ist, um sie mit dem abzugleichen exportierte Felder der PublicKey-Struktur.
Für eine komplexere JSON-Struktur wird empfohlen, Struktur-Tags zu verwenden, um JSON-Feldnamen explizit Strukturfeldern zuzuordnen. Darüber hinaus bietet das Unmarshaling in ein Kartensegment ([]map[string]interface{}) einen alternativen Ansatz, erfordert jedoch manuelle Indizierung und Typzusicherungen.
Das obige ist der detaillierte Inhalt vonWie analysiere ich JSON-Arrays in Go-Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!