Maison > développement back-end > Golang > Pourquoi ma structure Go ne décode-t-elle pas correctement JSON ?

Pourquoi ma structure Go ne décode-t-elle pas correctement JSON ?

Patricia Arquette
Libérer: 2024-11-19 10:25:02
original
175 Les gens l'ont consulté

Why is my Go struct not decoding JSON correctly?

Décoder JSON dans une structure Go

Dans Go, l'analyse d'un fichier JSON dans une structure nécessite l'utilisation du package encoding/json. Cependant, une analyse incorrecte de la structure JSON peut conduire à des résultats inattendus.

Considérez l'extrait de code fourni ci-dessous :

var settings struct {
    serverMode bool
    sourceDir  string
    targetDir  string
}

func main() {
    // ...
}
Copier après la connexion

Avec le fichier de configuration JSON :

{
    "serverMode": true,
    "sourceDir": ".",
    "targetDir": "."
}
Copier après la connexion

Vous peut rencontrer un résultat déroutant :

false  
(false and two empty strings)
Copier après la connexion

Ce problème survient car les éléments struct ne sont pas exportés. Par défaut, les éléments struct commençant par une lettre minuscule sont invisibles pour l'encodeur/décodeur JSON. Pour résoudre ce problème, exportez les éléments struct en mettant leurs premières lettres en majuscule :

var settings struct {
    ServerMode bool `json:"serverMode"`
    SourceDir  string `json:"sourceDir"`
    TargetDir  string `json:"targetDir"`
}
Copier après la connexion

L'exportation des éléments struct garantit que l'encodeur/décodeur JSON peut accéder et décoder les valeurs struct. Cela entraînera l'analyse correcte du fichier de configuration JSON dans la structure.

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