Heim >Backend-Entwicklung >Golang >Wie gehe ich mit JSON-Antworten mit dynamischen Schlüsseln in Go um?

Wie gehe ich mit JSON-Antworten mit dynamischen Schlüsseln in Go um?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-01 18:58:13235Durchsuche

How to Handle JSON Responses with Dynamic Keys in Go?

Verarbeitung von JSON-Antworten mit dynamischen Schlüsseln in Golang

Wenn JSON-Antworten mit beliebigen Schlüsseln auftreten, kann es schwierig sein, eine entsprechende Struktur zu erstellen. Ein solches Beispiel ist die bereitgestellte JSON-Antwort, die verschachtelte Karten mit unterschiedlichen Schlüsseln für Bildgrößen enthält.

Um dieses Problem zu beheben, sollten Sie die Verwendung einer kartenbasierten Datenstruktur in Betracht ziehen. In Golang ist eine Karte eine Sammlung von Schlüssel-Wert-Paaren, wobei die Schlüssel Zeichenfolgen sind.

Lösung:

Definieren Sie eine Struktur zur Darstellung des äußeren „Items“-Schlüssels :

type Items struct {
    Name string `json:"name"`
    Images map[string][]ImageUrl `json:"image_urls"`
}

Hier wird das Feld „image_urls“ als Karte deklariert, in der die Schlüssel Zeichenfolgen sind (die das Bild darstellen). Größen) und die Werte sind Slices von ImageUrl-Strukturen.

ImageUrl-Struktur:

type ImageUrl struct {
    Url string `json:"url"`
    Width, Height int `json:"width,height"`
}

Diese Struktur stellt die einzelne Bild-URL und ihre Abmessungen dar.

Verwendung:

Zum Unmarshalieren des JSON in die Elemente strukturieren, verwenden:

var items Items
json.Unmarshal(jsonData, &items)

Vorteile der Verwendung einer Karte:

  • Ermöglicht eine dynamische Schlüsselverwaltung.
  • Karten sind effizient zum Suchen und Abrufen.
  • Bietet eine einfache und flexible Möglichkeit zur verschachtelten Darstellung Daten.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit JSON-Antworten mit dynamischen Schlüsseln 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