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
Libérer: 2024-12-27 16:58:14
original
175 Les gens l'ont consulté

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"
  }
}
Copier après la connexion

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))
}
Copier après la connexion

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}
Copier après la connexion

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!

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