Maison > développement back-end > Golang > Comment puis-je désorganiser partiellement JSON dans une carte Go ?

Comment puis-je désorganiser partiellement JSON dans une carte Go ?

Mary-Kate Olsen
Libérer: 2024-12-26 04:28:09
original
354 Les gens l'ont consulté

How Can I Partially Unmarshal JSON into a Go Map?

Démarrer partiellement JSON dans une carte dans Go

Dans Go, il est possible de désorganiser partiellement les données JSON dans une carte lorsque les données sont enveloppées dans un objet avec clé- paires de valeurs. Cela permet d'identifier facilement le type de valeur que contient chaque clé.

Implémentation

Pour y parvenir, utilisez le package encoding/json et dégroupez-le dans un map[string]json.RawMessage. Le type json.RawMessage capture les données JSON sous-jacentes avant une analyse plus approfondie.

var objmap map[string]json.RawMessage
err := json.Unmarshal(data, &objmap)
Copier après la connexion

Analyse supplémentaire

Une fois la carte obtenue, vous pouvez procéder à l'analyse de la valeur de chaque clé en fonction de sa type connu.

Pour l'exemple JSON :

{
    "sendMsg":{"user":"ANisus","msg":"Trying to send a message"},
    "say":"Hello"
}
Copier après la connexion

Vous pouvez analysez sendMsg et dites comme suit :

type sendMsg struct {
    User string
    Msg  string
}

var s sendMsg
err = json.Unmarshal(objmap["sendMsg"], &s)

var str string
err = json.Unmarshal(objmap["say"], &str)
Copier après la connexion

Exportation des variables

Notez que les variables de la structure sendMsg doivent être exportées (c'est-à-dire en majuscules) pour un démarshalage correct, comme indiqué :

type sendMsg struct {
    User string
    Msg  string
}
Copier après la connexion

Exemple

Voir un exemple fonctionnel ici : https://play.golang.org/p/OrIjvqIsi4-

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