Balises de champ JSON dynamiques dans Go
Lors de la génération de fichiers JSON pour Terraform, vous pouvez rencontrer des noms de champs dynamiques tels que des noms de ressources et des noms d'instances AWS . Ces noms ne sont pas connus au moment de la compilation, ce qui rend difficile l'utilisation des balises de champ de Go pour le marshalling.
Pour surmonter ce problème, envisagez plutôt d'utiliser une carte :
type Resource struct { AWSInstance map[string]AWSInstance `json:"aws_instance"` } type AWSInstance struct { AMI string `json:"ami"` Count int `json:"count"` SourceDestCheck bool `json:"source_dest_check"` }
Avec une carte, vous peut attribuer des noms de champs dynamiques aux clés de mappage et insérer des valeurs dans la carte pour construire dynamiquement la charge utile JSON. Par exemple :
r := Resource{ AWSInstance: map[string]AWSInstance{ "web1": AWSInstance{ AMI: "qdx", Count: 2, }, }, }
Cette approche vous permet de gérer des clés JSON variables et de générer des charges utiles JSON personnalisées avec des noms de champs dynamiques dans Go.
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!