Maison >développement back-end >Golang >Le package « encoding/json » de Go peut-il partiellement intégrer JSON dans une carte ?

Le package « encoding/json » de Go peut-il partiellement intégrer JSON dans une carte ?

DDD
DDDoriginal
2024-12-29 04:27:13656parcourir

Can Go's `encoding/json` Package Partially Unmarshal JSON into a Map?

Désorganisation partielle de JSON dans une carte dans Go

Problème :

Envisagez un scénario dans lequel un serveur Go reçoit des données JSON encapsulées dans un objet avec des paires clé/valeur. Chaque clé correspond à un type de valeur spécifique et le serveur doit désorganiser la valeur dans le type de structure approprié en fonction de la clé. La question est : cela peut-il être réalisé en utilisant le package "encoding/json" ?

Solution :

Pour y parvenir, nous pouvons partiellement désorganiser les données JSON dans un carte de paires clé-valeur, où les clés sont des chaînes et les valeurs sont des instances json.RawMessage. RawMessage représente des données JSON non traitées, ce qui nous permet de les décomposer davantage en structures ou types spécifiques.

Voici le code à démontrer :

import (
    "encoding/json"
    "fmt"
)

func main() {
    data := []byte(`{"sendMsg":{"user":"ANisus","msg":"Trying to send a message"},"say":"Hello"}`)

    var objmap map[string]json.RawMessage
    err := json.Unmarshal(data, &objmap)
    if err != nil {
        // Handle error
    }

    // Example: Unmarshal sendMsg value into a struct
    type sendMsg struct {
        User string
        Msg  string
    }

    var s sendMsg
    err = json.Unmarshal(objmap["sendMsg"], &s)
    if err != nil {
        // Handle error
    }
    fmt.Println(s)
}

Exemple d'utilisation :

Dans l'exemple ci-dessus, les données JSON sont d'abord désorganisées dans un map[string]json.RawMessage. Ensuite, pour analyser des valeurs spécifiques telles que sendMsg, nous pouvons décomposer davantage le RawMessage correspondant dans une structure définie dans le programme.

Cette technique permet une gestion flexible et efficace des données JSON avec plusieurs paires clé-valeur, où le les valeurs peuvent être décomposées en différents types en fonction de la clé.

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