Introduction
Vos données JSON suivent un format inconnu, ce qui présente un défi de démarchage dans une structure GoLang. Cet article vous guidera à travers les étapes pour gérer efficacement ce scénario.
Démarrer avec l'interface map[string]{}
Puisque vous ne connaissez pas les clés de avancez, vous pouvez utiliser map[string]interface{} pour désorganiser votre charge utile JSON. Cela vous permet de stocker les paires clé-valeur sous forme de carte sans spécifier les types de valeurs.
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades) fmt.Println(err) fmt.Printf("%#v\n", grades)
Cela affichera les données JSON sous la forme d'une carte imbriquée de chaînes vers les interfaces, ce qui peut être utile pour inspecter et traiter les données de manière dynamique.
Utilisation de json :"-" Tag
Vous pouvez exclure certains champs du marshaling/unmarshaling JSON à l'aide de la balise json:"-". Cela peut être utile si vous souhaitez garder certaines données privées ou éviter les références circulaires.
type GradeData struct { Grades map[string]interface{} `json:"-"` } var gradesData GradeData err := json.Unmarshal([]byte(jsonString), &gradesData.Grades) fmt.Println(err) fmt.Printf("%#v\n", gradesData)
Dans cet exemple, le champ Notes ne sera pas inclus dans la représentation JSON de notesData, mais il pourra toujours être utilisé pour stocker et récupérer les données JSON.
Conclusion
En utilisant map[string]interface{} et le json:"-" tag, vous pouvez réussir à désorganiser les données JSON de format inconnu dans des structures GoLang. Cette approche vous permet de gérer avec élégance les structures JSON dynamiques et inconnues.
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!