JSON-Arrays in Go mit dem JSON-Paket analysieren
Beim Versuch, eine Zeichenfolge zu analysieren, die ein JSON-Array in Go mit dem JSON-Paket darstellt, Bei einigen Entwicklern können Fehler bei der Unmarshal-Funktion auftreten. Dieser Artikel bietet eine Lösung und beleuchtet alternative Ansätze.
Originalcode:
type JsonType struct { Array []string } func main() { dataJson := `["1","2","3"]` arr := JsonType{} unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array) log.Printf("Unmarshaled: %v", unmarshaled) }
Problem:
Der von Unmarshal zurückgegebene Fehler wird anstelle des erwarteten Arrays gedruckt. Um dieses Problem zu beheben, sollte die Unmarshal-Funktion wie folgt geändert werden:
err := json.Unmarshal([]byte(dataJson), &arr)
Der Rückgabewert von Unmarshal ist ein Fehler, der entsprechend behandelt werden sollte.
Vereinfachter Ansatz:
Um den Code zu vereinfachen, kann die JsonType-Struktur entfernt und ein Slice verwendet werden direkt:
package main import ( "encoding/json" "log" ) func main() { dataJson := `["1","2","3"]` var arr []string _ = json.Unmarshal([]byte(dataJson), &arr) log.Printf("Unmarshaled: %v", arr) }
Vorteile der Verwendung eines Zeigers (optional):
Die Übergabe eines Zeigers an die Variable in Unmarshal ermöglicht eine Speicheroptimierung und potenzielle Leistungssteigerungen, insbesondere bei einer Verarbeitung Kontext, in dem dieselbe Variable wiederholt wiederverwendet wird.
Schlussfolgerung:
Durch Ändern der Mit der Unmarshal-Funktion und der direkten Verwendung eines Slice können Entwickler JSON-Arrays in Go mithilfe des JSON-Pakets effektiv analysieren. Die Verwendung eines Zeigers beim Übergeben der Variablen an Unmarshal kann die Speichernutzung weiter optimieren, insbesondere in Verarbeitungsszenarien.
Das obige ist der detaillierte Inhalt vonWie analysiere ich JSON-Arrays in Go mithilfe des „json'-Pakets korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!