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
Susan Sarandonoriginal
2024-11-26 01:15:15604parcourir

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(...)}]
}

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)

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)

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