Heim  >  Artikel  >  Backend-Entwicklung  >  Wie entmarshaliere ich JSON ohne Schleifen in eine Go-Map?

Wie entmarshaliere ich JSON ohne Schleifen in eine Go-Map?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 21:33:02195Durchsuche

 How to Unmarshal JSON into a Go Map without Loops?

JSON in Karte entpacken

Diese Frage befasst sich mit der Herausforderung, JSON-Daten in eine Go-Karte zu laden. Konkret wird eine einfache JSON-Datei bereitgestellt, die ein Array von Zeichenfolgen enthält, und das Ziel besteht darin, die Obstliste in eine Karte mit Zeichenfolgenschlüsseln und Schnittstellen{}-Werten zu entpacken. Die Frage fragt auch, ob es eine effiziente Möglichkeit gibt, die Verwendung von Schleifen zum Einfügen von Elementen in die Karte zu vermeiden.

Um diese Frage zu beantworten, können wir das leistungsstarke Encoding/JSON-Paket von Go nutzen. Durch das Unmarshaling der JSON-Daten direkt in eine Map[string][]string können wir die Notwendigkeit einer Iteration und des manuellen Einfügens umgehen:

<code class="go">package main

import "fmt"
import "encoding/json"

func main() {
    src_json := []byte(`{"fruits":["apple","banana","cherry","date"]}`)
    var m map[string][]string
    err := json.Unmarshal(src_json, &m)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", m["fruits"][0]) //apple
}</code>

Dieser Code wandelt das JSON effizient in eine Map um, in der der Schlüssel Früchte trägt " wird einer Liste von Zeichenfolgen zugeordnet. Es vermeidet Schleifen und manuelles Einfügen und macht es sowohl prägnant als auch leistungsstark. Alternativ können Sie auch „map[string][]interface{} als Zieltyp verwenden, wenn Sie die Werte lieber als generische Schnittstellen behalten möchten.

Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich JSON ohne Schleifen in eine Go-Map?. 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