Heim > Artikel > Backend-Entwicklung > Warum dekodiert meine Go-Struktur JSON nicht richtig?
JSON in eine Go-Struktur dekodieren
In Go erfordert das Parsen einer JSON-Datei in eine Struktur die Verwendung des Pakets „encoding/json“. Eine falsche Analyse der JSON-Struktur kann jedoch zu unerwarteten Ergebnissen führen.
Beachten Sie den unten bereitgestellten Codeausschnitt:
var settings struct { serverMode bool sourceDir string targetDir string } func main() { // ... }
Mit der JSON-Konfigurationsdatei:
{ "serverMode": true, "sourceDir": ".", "targetDir": "." }
Sie kann auf eine rätselhafte Ausgabe stoßen:
false (false and two empty strings)
Dieses Problem tritt auf, weil die Strukturelemente nicht exportiert werden. Standardmäßig sind Strukturelemente, die mit einem Kleinbuchstaben beginnen, für den JSON-Encoder/Decoder unsichtbar. Um dieses Problem zu beheben, exportieren Sie die Strukturelemente, indem Sie ihre Anfangsbuchstaben großschreiben:
var settings struct { ServerMode bool `json:"serverMode"` SourceDir string `json:"sourceDir"` TargetDir string `json:"targetDir"` }
Durch den Export der Strukturelemente wird sichergestellt, dass der JSON-Encoder/Decoder auf die Strukturwerte zugreifen und diese dekodieren kann. Dies führt zum korrekten Parsen der JSON-Konfigurationsdatei in die Struktur.
Das obige ist der detaillierte Inhalt vonWarum dekodiert meine Go-Struktur JSON nicht richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!