Maison > développement back-end > Golang > Comment désassembler des structures de données JSON inconnues dans Go ?

Comment désassembler des structures de données JSON inconnues dans Go ?

Susan Sarandon
Libérer: 2024-11-26 01:15:15
original
550 Les gens l'ont consulté

How to Unmarshal Unknown JSON Data Structures in Go?

Démarrer les données JSON de format inconnu

Le JSON fourni suit un modèle spécifique :

{
SUBJECT1: [{Student_Name1: Grade, Student_Name2: Grade, ... , Student_Name3: Grade, timestamp: Timestamp(...)}],
SUBJECT2: [{Student_Name4: Grade, Student_Name6: Grade, ... , Student_Name5: Grade, timestamp: Timestamp(...)}]
...
SUBJECTN: [{Student_Name1: Grade, Student_Name6: Grade, ... , Student_Name9: Grade, timestamp: Timestamp(...)}]
}
Copier après la connexion

Objectif : Réunissez le JSON dans une structure GoLang pour un retour en tant que JSON objet.

Solution :

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

Puisque les clés JSON sont inconnu, nous pouvons utiliser map[string]interface{} pour désorganiser le payload.

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

Option 2 : Utiliser une structure

Si une structure est souhaitée, utilisez la balise json:"-" pour ignorer les champs lors du marshalling JSON/ déclassement.

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

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