Maison  >  Article  >  développement back-end  >  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
Patricia Arquetteoriginal
2024-11-19 10:25:02126parcourir

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() {
    // ...
}

Avec le fichier de configuration JSON :

{
    "serverMode": true,
    "sourceDir": ".",
    "targetDir": "."
}

Vous peut rencontrer un résultat déroutant :

false  
(false and two empty strings)

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"`
}

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!

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