Maison >développement back-end >Golang >Comment gérer les balises de champ JSON dynamiques dans Go ?

Comment gérer les balises de champ JSON dynamiques dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-27 09:31:09477parcourir

How to Handle Dynamic JSON Field Tags in Go?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn