Maison >développement back-end >Golang >Comment puis-je rassembler les balises de champ JSON dynamiques dans Go ?
Marshaling des balises de champ JSON dynamiques dans Go
Lors de la génération de JSON pour un fichier Terraform à l'aide du format JSON, vous pouvez rencontrer le défi d'utiliser clés JSON dynamiques pour les ressources avec des noms aléatoires ou variables. Cela est dû au fait que les balises de champ de Terraform pour le marshalling JSON nécessitent des identifiants statiques.
Traditionnellement, on peut envisager d'utiliser du code personnalisé pour lancer son propre JSON, cependant, il est préférable d'utiliser les capacités de marshalling existantes. La question se pose : comment créer des clés JSON dynamiques avec les balises de champ de Go ?
Solution
Malheureusement, utiliser des balises de champ pour générer des clés JSON dynamiques n'est pas possible dans Go . Cependant, une solution alternative existe : utiliser une carte.
Utiliser une carte
Les cartes dans Go permettent des clés dynamiques, ce qui les rend idéales pour cette situation. Voici un exemple :
type Resource struct { AWSInstance map[string]AWSInstance `json:"aws_instance"` } type AWSInstance struct { // Your instance properties here }
Dans cet exemple, le champ AWSInstance dans la structure Resource est une carte utilisant des clés de chaîne dynamiques pour stocker des valeurs AWSInstance individuelles.
Exemple d'utilisation
r := Resource{ AWSInstance: map[string]AWSInstance{ "web1": AWSInstance{ // Initialize your instance properties }, // ... add other instances with dynamic keys }, }
Aire de jeux Exemple
Vous pouvez explorer un exemple interactif sur le Go Playground : https://go.dev/play/p/e9d2O-cLsjX
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!