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!