Maison > développement back-end > Golang > Comment puis-je rassembler les balises de champ JSON dynamiques dans Go ?

Comment puis-je rassembler les balises de champ JSON dynamiques dans Go ?

Susan Sarandon
Libérer: 2024-12-11 18:14:17
original
286 Les gens l'ont consulté

How Can I Marshal Dynamic JSON Field Tags in 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
}
Copier après la connexion

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

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!

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