Maison >développement back-end >Golang >Comment puis-je ajouter une propriété « count » aux données JSON dynamiques dans Go ?
Décodage JSON avec structure dynamique
Lorsque vous traitez des données JSON de structure inconnue ou variable, il devient difficile de les décoder à l'aide de structures prédéfinies dans Aller. Pour surmonter ce problème, nous pouvons utiliser une approche plus flexible.
Solution : Désassembler dans une carte
Tout d'abord, nous décomposons le JSON dans une interface map[string] {}, qui est une structure de données de type flexible dans Go. Cela nous permet d'accéder aux propriétés JSON sous forme de chaînes et à leurs valeurs correspondantes sous forme d'interfaces génériques.
Ajout de la propriété "count"
Une fois le JSON désorganisé dans une carte , nous pouvons le manipuler librement. Dans ce cas, nous pouvons attribuer une nouvelle paire clé-valeur avec la clé "count" et la valeur étant le nombre souhaité.
Marshaling Back to JSON
Enfin , nous regroupons la carte modifiée dans une chaîne JSON. Ce processus implique la sérialisation de la carte au format JSON, qui produira la sortie souhaitée avec la propriété « count » ajoutée.
Exemple de code
package main import ( "encoding/json" "fmt" ) func main() { in := []byte(`{ "votes": { "option_A": "3" } }`) // Unmarshal into a map var raw map[string]interface{} if err := json.Unmarshal(in, &raw); err != nil { panic(err) } // Add the "count" property raw["count"] = 1 // Marshal back to JSON out, err := json.Marshal(raw) if err != nil { panic(err) } fmt.Println(string(out)) }
Sortie :
{"votes":{"option_A":"3"},"count":1}
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!