Démarshaling de données JSON de format inconnu
Face à des données JSON qui possèdent une structure imprévisible et des clés variables, cela présente le défi de démarshaler dans des structures Go. Cet article explique comment gérer efficacement de tels scénarios.
Solution
Pour résoudre ce problème, deux approches sont recommandées :
Approche 1 : Utiliser une variable Map
Lorsque les clés sont inconnues, l'utilisation d'une variable map[string]interface{} est une option appropriée pour décomplexer la charge utile JSON.
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades)
Ici, la variable cartographique « notes » contiendra les données non marshalées, où les clés représentent les noms de sujets inconnus, et les valeurs sont des cartes composées des noms des étudiants et de leurs notes.
Approche 2 : Ignorer les clés inconnues avec la balise JSON
Si une structure est préférable, elle peut être annotée avec la balise json:"-" pour ignorer des champs spécifiques lors du marshaling et du démarshaling JSON. Cela permet à la structure de conserver les données non marshalées tout en excluant les clés inconnues.
type GradeData struct { Grades map[string]interface{} `json:"-"` } var gradesData GradeData err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
Dans ce cas, la structure "GradeData" contient uniquement le champ "Notes", qui est une carte des noms de sujets et des étudiants. notes, mais les noms de clés d'origine du JSON ne sont pas présents. La balise JSON garantit que les champs de la structure s'alignent sur le format de sortie souhaité.
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!