Analyse de JSON dans une structure Go
Lorsque vous essayez d'analyser JSON dans une structure Go, vous rencontrez un résultat inattendu : des valeurs de structure vides et une fausse valeur booléenne. Par défaut, les champs struct doivent être exportés (commençant par des lettres majuscules) pour être reconnus par l'encodeur/décodeur. Voici une version révisée de votre code :
// 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) }
Avec ces modifications, l'encodeur/décodeur peut accéder et modifier correctement les champs de votre structure, ce qui donne les valeurs analysées souhaitées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!