Heim > Backend-Entwicklung > Golang > Warum dekodiert meine Go-Struktur JSON nicht richtig?

Warum dekodiert meine Go-Struktur JSON nicht richtig?

Patricia Arquette
Freigeben: 2024-11-19 10:25:02
Original
177 Leute haben es durchsucht

Why is my Go struct not decoding JSON correctly?

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() {
    // ...
}
Nach dem Login kopieren

Mit der JSON-Konfigurationsdatei:

{
    "serverMode": true,
    "sourceDir": ".",
    "targetDir": "."
}
Nach dem Login kopieren

Sie kann auf eine rätselhafte Ausgabe stoßen:

false  
(false and two empty strings)
Nach dem Login kopieren

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"`
}
Nach dem Login kopieren

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!

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