Maison >développement back-end >Golang >Comment puis-je modifier un objet JSON avec une structure inconnue dans Go ?

Comment puis-je modifier un objet JSON avec une structure inconnue dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-27 16:58:14227parcourir

How Can I Modify a JSON Object with an Unknown Structure in Go?

Gestion de JSON avec une structure inconnue : démarshalage et modification

Dans de nombreux scénarios de programmation, traiter des données JSON avec une structure inconnue peut être difficile. Cependant, Go propose une solution pour surmonter cet obstacle.

Considérons une situation dans laquelle vous recevez une chaîne JSON comme celle-ci :

{
  "votes": {
    "option_A": "3"
  }
}

Votre objectif est d'ajouter une nouvelle clé "count" avec une valeur de "1" à l'objet JSON. Cependant, comme la structure JSON est imprévisible, vous ne pouvez pas utiliser la fonction json.Unmarshal standard avec une structure prédéfinie.

Pour relever ce défi, vous pouvez utiliser le type map[string]interface{}. Cela vous permet de transformer le JSON en une carte générique, où les clés sont des chaînes et les valeurs sont des interfaces qui peuvent représenter tout type de données.

Le code montre comment y parvenir :

package main

import (
    "encoding/json"
    "fmt"
)

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)
    }

    fmt.Println(string(out))
}

Dans ce code, nous désorganisons les données JSON dans la carte brute. La structure étant inconnue, les valeurs sont représentées sous forme d'interfaces.

Nous pouvons ensuite modifier la carte en ajoutant une nouvelle paire clé-valeur avec "count" comme clé et 1 comme valeur. Enfin, nous regroupons la carte modifiée dans une chaîne JSON à l'aide de json.Marshal.

Le résultat sera comme prévu :

{"votes":{"option_A":"3"},"count":1}

Cette technique offre un moyen flexible de gérer les données JSON avec structures inconnues, vous permettant de modifier et d'enrichir les données selon vos besoins.

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