Mappage JSON dynamique dans Go à l'aide de Maps
Dans Go, mapper des réponses JSON dynamiques avec des clés imprévisibles peut être un défi. Cependant, l'utilisation de cartes offre une solution flexible.
Considérez la réponse JSON suivante, où les clés varient :
{ "items": [ {"name": "thing", "image_urls": { "50x100": [{ "url": "http://site.com/images/1/50x100.jpg", "width": 50, "height": 100 }, { "url": "http://site.com/images/2/50x100.jpg", "width": 50, "height": 100 }], "200x300": [{ "url": "http://site.com/images/1/200x300.jpg", "width": 200, "height": 300 }], "400x520": [{ "url": "http://site.com/images/1/400x520.jpg", "width": 400, "height": 520 }] } } ] }
Pour capturer cette nature dynamique, créez une structure basée sur une carte. Les cartes dans Go autorisent des clés et des valeurs arbitraires, ce qui les rend idéales pour ce scénario.
type Items map[string][]ImageURL
Ici, la structure Items est une carte avec des clés de chaîne (représentant les différentes clés JSON) et des valeurs de type [] ImageURL.
Pour utiliser cette structure, définissez une structure ImageURL pour les entrées d'image individuelles :
type ImageURL struct { URL string Width int Height int }
Maintenant, vous pouvez désassemblez la réponse JSON directement dans une structure Items :
err := json.Unmarshal(data, &items) if err != nil { // Handle error }
Cette approche fournit un mappage flexible pour les réponses JSON dynamiques, vous permettant de capturer les données sans avoir besoin de prédéfinir toutes les clés possibles.
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!