JSON Marshalling dans Go : sensibilité à la casse des champs de structure
Lorsque vous essayez de générer du JSON à partir d'une structure dans Go, vous pouvez rencontrer des résultats inattendus si les champs de la structure commencent par des caractères minuscules. Considérez la structure suivante :
type Machine struct { m_ip string m_type string m_serial string }
Le regroupement de cette structure en JSON entraînera un objet JSON vide {}. En effet, par convention, Go utilise la casse d'un identifiant pour déterminer sa visibilité au sein d'un package. En commençant les noms de champs par des caractères minuscules, ils sont marqués comme privés et inaccessibles à la fonction json.Marshal.
Pour résoudre ce problème, on peut soit rendre les noms de champs publics en mettant en majuscule la première lettre de chaque mot :
type Machine struct { MachIp string MachType string MachSerial string }
Ou, si l'on souhaite utiliser des noms de champs en minuscules dans la sortie JSON, ils peuvent utiliser des balises pour spécifier le JSON souhaité noms :
type Machine struct { MachIp string `json:"m_ip"` MachType string `json:"m_type"` MachSerial string `json:"m_serial"` }
En utilisant des balises, on peut personnaliser les noms des champs JSON tout en préservant la confidentialité des champs de structure dans Go.
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!