Maison >développement back-end >Golang >Pourquoi seuls les champs de structure en majuscules sont-ils mis à jour dans CouchDB à l'aide de go-couchdb ?
La capitalisation a un impact sur le stockage des données dans les structures CouchDB
Lors de l'utilisation de la bibliothèque "github.com/mikebell-org/go-couchdb" pour accéder CouchDB, un problème particulier se pose : seuls les champs de structure avec des lettres initiales en majuscule sont mis à jour dans la base de données inserts.
Exemple :
type Person struct { name string Age int }
Lors de l'insertion d'une instance de personne dans la base de données :
joe := Person{ name: "mike", Age: 190, }
Seul le champ Âge est ajouté à la base de données. Les autres champs en minuscules, comme le nom, sont omis.
La raison derrière le comportement :
Ce comportement découle de la spécification du langage Go, qui dicte que les champs avec une initiale minuscule les lettres ne sont pas exportées. Par conséquent, le package de sérialisation JSON (par exemple, json) n'inclut ces champs que s'il est explicitement demandé de le faire.
Surmonter le problème :
Pour incorporer des champs en minuscules dans la base de données, utilisez les balises JSON :
type Person struct { name string `json:"name"` Age int `json:"Age"` }
En spécifiant la balise json, le champ du nom en minuscule est explicitement exposé pour Sérialisation JSON, permettant de le conserver dans la base de données. Reportez-vous à la documentation pour plus de détails sur les balises JSON.
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!