Maison > Article > développement back-end > Comment désorganiser le JSON imbriqué avec des clés dynamiques à l'aide de Go ?
Désorganisation du JSON imbriqué avec des clés dynamiques
Dans les structures JSON complexes, la rencontre d'objets imbriqués avec des clés changeant dynamiquement peut poser des problèmes lors de la désorganisation. Considérez les données JSON suivantes :
{ "message": { "Server1.example.com": [ { "application": "Apache", "host": { "name": "/^Server-[13456]/" }, "owner": "User1", "project": "Web", "subowner": "User2" } ], "Server2.example.com": [ { "application": "Mysql", "host": { "name": "/^Server[23456]/" }, "owner": "User2", "project": "DB", "subowner": "User3" } ] }, "response_ms": 659, "success": true }
Solution :
Pour désassembler efficacement un tel JSON, envisagez d'utiliser un map[string]ServerStruct pour l'objet imbriqué avec des clés dynamiques . Cette approche permet l'inclusion de plusieurs serveurs avec des noms inconnus.
Voici un exemple de structure mise à jour :
type YourStruct struct { Success bool ResponseMS int Servers map[string]*ServerStruct } type ServerStruct struct { Application string Owner string [...] }
En ajoutant des balises JSON, vous pouvez demander au décodeur de mapper un JSON spécifique champs aux champs de structure correspondants. Voici les balises mises à jour :
type YourStruct struct { Success `json:"success"` ResponseMS `json:"response_ms"` Servers `json:"-"` } type ServerStruct struct { Application string `json:"application"` Owner string `json:"owner"` [...] }
La balise json:"-" sur le champ "Serveurs" garantit que le décodeur ignore le mappage des champs JSON directement vers le champ "ServerStruct". Au lieu de cela, il mappe les champs sur un map[string]ServerStruct.
Cette approche fournit une solution flexible pour désorganiser les objets JSON imbriqués avec des clés dynamiques, vous permettant d'accéder facilement aux données de chaque objet serveur.
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!