Heim >Backend-Entwicklung >Golang >Wie gehe ich mit dynamischen JSON-Feld-Tags in Go um?

Wie gehe ich mit dynamischen JSON-Feld-Tags in Go um?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-27 09:31:09470Durchsuche

How to Handle Dynamic JSON Field Tags in Go?

Dynamische JSON-Feld-Tags in Go

Beim Generieren von JSON für Terraform-Dateien stoßen Sie möglicherweise auf dynamische Feldnamen wie Ressourcennamen und AWS-Instanznamen . Diese Namen sind zur Kompilierungszeit nicht bekannt, was es schwierig macht, die Feld-Tags von Go für das Marshalling zu verwenden.

Um dieses Problem zu umgehen, sollten Sie stattdessen die Verwendung einer Karte in Betracht ziehen:

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"`
}

Mit einer Karte, Sie kann Zuordnungsschlüsseln dynamische Feldnamen zuweisen und Werte in die Zuordnung einfügen, um die JSON-Nutzlast dynamisch zu erstellen. Zum Beispiel:

r := Resource{
    AWSInstance: map[string]AWSInstance{
        "web1": AWSInstance{
            AMI:   "qdx",
            Count: 2,
        },
    },
}

Mit diesem Ansatz können Sie variable JSON-Schlüssel verarbeiten und benutzerdefinierte JSON-Nutzlasten mit dynamischen Feldnamen in Go generieren.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit dynamischen JSON-Feld-Tags in Go um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn