Maison > développement back-end > Golang > 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
Libérer: 2024-11-12 10:27:02
original
857 Les gens l'ont consulté

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)
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal