JSON in eine Struktur in Go parsen
Beim Versuch, JSON in eine Go-Struktur zu parsen, stoßen Sie auf eine unerwartete Ausgabe: leere Strukturwerte und ein falscher boolescher Wert. Standardmäßig müssen Strukturfelder exportiert werden (mit Großbuchstaben beginnen), damit sie vom Encoder/Decoder erkannt werden. Hier ist eine überarbeitete Version Ihres Codes:
// Define your struct with exported fields type Settings struct { ServerMode bool `json:"serverMode"` SourceDir string `json:"sourceDir"` TargetDir string `json:"targetDir"` } func main() { // Open the config file configFile, err := os.Open("config.json") if err != nil { printError("opening config file", err.Error()) } jsonParser := json.NewDecoder(configFile) settings := Settings{} // Initialize the struct // Decode the JSON if err = jsonParser.Decode(&settings); err != nil { printError("parsing config file", err.Error()) } fmt.Printf("%v %s %s", settings.ServerMode, settings.SourceDir, settings.TargetDir) }
Mit diesen Änderungen kann der Encoder/Decoder ordnungsgemäß auf die Felder Ihrer Struktur zugreifen und diese ändern, was zu den gewünschten geparsten Werten führt.
Das obige ist der detaillierte Inhalt vonWarum sind meine Go-Strukturfelder beim Parsen von JSON leer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!