Maison > développement back-end > Golang > Comment désorganiser les données JSON avec des clés inconnues ou variables dans Go ?

Comment désorganiser les données JSON avec des clés inconnues ou variables dans Go ?

Susan Sarandon
Libérer: 2024-11-29 03:44:09
original
277 Les gens l'ont consulté

How to Unmarshal JSON Data with Unknown or Variable Keys in Go?

Démarrer les données JSON de format inconnu avec des clés variables

Lorsque vous traitez des données JSON comportant des clés inconnues ou variables, il peut être difficile de définir une structure GoLang spécifique à des fins de démarchage. Cet article résout ce problème en proposant deux solutions viables.

Solution 1 : Utilisation de l'interface map[string]{}

Si vous n'avez aucune connaissance des clés présente dans la charge utile JSON, vous pouvez utiliser une carte avec une clé de chaîne et une valeur interface{} (c'est-à-dire map[string]interface{}). Cette approche permet un désorganisation dynamique des données sans nécessiter une structure prédéfinie. Par exemple :

var grades map[string]interface{}

err := json.Unmarshal([]byte(jsonString), &grades)
fmt.Println(err)
fmt.Printf("%#v\n", grades)
Copier après la connexion

Solution 2 : Utiliser une structure avec des champs ignorés

Si vous souhaitez toujours utiliser une structure mais que vous souhaitez ignorer les champs inconnus lors de la désorganisation, vous pouvez utiliser la balise json:"-" pour ces champs. Cette balise indique au décodeur JSON de ne pas prendre en compte ces champs pendant le processus. Par exemple :

type GradeData struct {
    Grades map[string]interface{} `json:"-"`
}

err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
fmt.Println(err)
fmt.Printf("%#v\n", gradesData)
Copier après la connexion

Les deux solutions offrent une flexibilité dans la gestion des données JSON avec des clés inconnues ou variables. Cependant, pour un traitement ultérieur ou une manipulation des données, vous devrez peut-être convertir les données en types spécifiques en fonction de 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