Maison > développement back-end > Golang > Comment puis-je décoder JSON avec une structure variable dans Go ?

Comment puis-je décoder JSON avec une structure variable dans Go ?

Patricia Arquette
Libérer: 2025-01-01 01:58:11
original
660 Les gens l'ont consulté

How Can I Decode JSON with a Variable Structure in Go?

Décodage du JSON avec une structure variable

Lorsque vous travaillez avec des données JSON, il peut être difficile de gérer des structures de données qui varient. Dans de tels cas, les méthodes conventionnelles comme json.Unmarshal() utilisant des structures fixes deviennent peu pratiques. Voici une solution pour ce scénario :

Solution : Démarrer dans l'interface map[string]{}

Au lieu de s'appuyer sur des structures prédéfinies, nous pouvons désorganiser le JSON dans un Type générique map[string]interface{}. Cela nous permet de gérer des données JSON avec des structures variables.

Considérez le JSON suivant :

{ "votes": { "option_A": "3" } }
Copier après la connexion

Pour ajouter une clé « compte » à ce JSON, nous pouvons le désorganiser comme suit :

package main

import (
    "encoding/json"
)

func main() {
    in := []byte(`{ "votes": { "option_A": "3" } }`)
    var raw map[string]interface{}
    if err := json.Unmarshal(in, &raw); err != nil {
        panic(err)
    }
    raw["count"] = 1
    out, err := json.Marshal(raw)
    if err != nil {
        panic(err)
    }
    println(string(out))
}
Copier après la connexion

Cette approche nous permet de modifier facilement la structure JSON sans être lié à un modèle de données fixe. Le type map[string]interface{} offre une flexibilité dans la gestion des structures JSON dynamiques.

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