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
Libérer: 2024-12-27 09:31:09
original
470 Les gens l'ont consulté

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"`
}
Copier après la connexion

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,
        },
    },
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal