Heim > Backend-Entwicklung > Golang > Wie kann ich dynamische JSON-Feld-Tags in Go marshalieren?

Wie kann ich dynamische JSON-Feld-Tags in Go marshalieren?

Susan Sarandon
Freigeben: 2024-12-11 18:14:17
Original
287 Leute haben es durchsucht

How Can I Marshal Dynamic JSON Field Tags in Go?

Marshaling dynamischer JSON-Feld-Tags in Go

Beim Generieren von JSON für eine Terraform-Datei mithilfe des JSON-Formats kann es zu einer Herausforderung bei der Verwendung kommen dynamische JSON-Schlüssel für Ressourcen mit zufälligen oder variablen Namen. Dies liegt daran, dass die Feld-Tags von Terraform für das JSON-Marshalling statische Kennungen erfordern.

Traditionell könnte man erwägen, benutzerdefinierten Code zu verwenden, um sein eigenes JSON zu rollen, die Verwendung der vorhandenen Marshalling-Funktionen ist jedoch vorzuziehen. Es stellt sich die Frage: Wie können Sie dynamische JSON-Schlüssel mit den Feld-Tags von Go erstellen?

Lösung

Leider ist die Verwendung von Feld-Tags zur Generierung dynamischer JSON-Schlüssel in Go nicht möglich . Es gibt jedoch eine alternative Lösung: die Verwendung einer Karte.

Verwendung einer Karte

Karten in Go ermöglichen dynamische Schlüssel und sind daher ideal für diese Situation. Hier ist ein Beispiel:

type Resource struct {
    AWSInstance map[string]AWSInstance `json:"aws_instance"`
}

type AWSInstance struct {
    // Your instance properties here
}
Nach dem Login kopieren

In diesem Beispiel ist das AWSInstance-Feld innerhalb der Ressourcenstruktur eine Zuordnung, die dynamische Zeichenfolgenschlüssel zum Speichern einzelner AWSInstance-Werte verwendet.

Beispielverwendung

r := Resource{
    AWSInstance: map[string]AWSInstance{
        "web1": AWSInstance{
            // Initialize your instance properties
        },
        // ... add other instances with dynamic keys
    },
}
Nach dem Login kopieren

Spielplatz Beispiel

Sie können ein interaktives Beispiel auf dem Go Playground erkunden: https://go.dev/play/p/e9d2O-cLsjX

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage