Heim > Backend-Entwicklung > Golang > Wie liest man JSON-Dateien als Objekte in Go?

Wie liest man JSON-Dateien als Objekte in Go?

Mary-Kate Olsen
Freigeben: 2024-11-15 00:57:02
Original
330 Leute haben es durchsucht

How Do You Read JSON Files as Objects in Go?

JSON-Dateien als Objekt in Go lesen

In Go können beim Versuch, eine JSON-Datei zu lesen und als Objekt zu analysieren, Schwierigkeiten auftreten JSON-Objekt.

Fehlgeschlagene Versuche

Einige fehlgeschlagene Versuche, JSON-Dateien als Objekte zu lesen, umfassen:

  • Versuch 1:
plan, _ := ioutil.ReadFile(filename) // filename is the JSON file to read
var data interface{}
err := json.Unmarshal(plan, data)
Nach dem Login kopieren

Dies führt zum Fehler „json: Unmarshal(nil)“.

  • Versuch 2:
generatePlan, _ := json.MarshalIndent(plan, "", " ") // plan is a pointer to a struct
Nach dem Login kopieren

Dies erzeugt eine String-Ausgabe, aber die Umwandlung in einen String macht eine Schleife als JSON-Objekt unmöglich.

Lösung

Der Schlüssel zur Lösung dieses Problems liegt im Wert, auf den json.Unmarshal hinweist. Es muss ein Zeiger sein.

plan, _ := ioutil.ReadFile(filename)
var data interface{}
err := json.Unmarshal(plan, &data)
Nach dem Login kopieren

Typ-Assertion

Wenn Sie beim Unmarshalieren eine leere Schnittstelle verwenden, müssen Sie die Typ-Assertion verwenden, um zugrunde liegende Werte als natives Go abzurufen Typen:

bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null
Nach dem Login kopieren

Best Practice

Es wird dringend empfohlen, eine konkrete Struktur zu verwenden, um JSON-Daten mit Unmarshal zu füllen. Dies sorgt für mehr Klarheit und vermeidet die Notwendigkeit von Typzusicherungen.

Das obige ist der detaillierte Inhalt vonWie liest man JSON-Dateien als Objekte in Go?. 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