Maison  >  Article  >  développement back-end  >  Pourquoi mes champs de structure Go sont-ils vides lors de l'analyse de JSON ?

Pourquoi mes champs de structure Go sont-ils vides lors de l'analyse de JSON ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 10:27:02830parcourir

Why are my Go struct fields empty when parsing JSON?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn