So teilweises Unmarshalling von JSON in einer Karte in Go
Das Unmarshalling von JSON-Daten in Go kann unkompliziert sein, beim Umgang mit verschachtelten Daten treten jedoch Herausforderungen auf Objekte, deren Schlüssel den Typ der Daten angeben. Um dieses Problem zu beheben, können Sie das Paket „encoding/json“ nutzen.
Im bereitgestellten Code versuchen Sie, JSON-Daten einem Map[string][]byte zuzuordnen und sie so effektiv in einen Schlüssel umzuwandeln -Wert-Paar aus Zeichenfolgen und rohem JSON. Die Funktion json.MapObject existiert jedoch nicht, sodass diese Lösung nicht realisierbar ist.
Stattdessen können Sie eine Map[string]json.RawMessage verwenden, um Ihr Ziel zu erreichen. RawMessage ist ein undurchsichtiger Typ, der nicht geparstes JSON enthält. Mit diesem Ansatz entmarspelt der folgende Code die bereitgestellten JSON-Daten in die objmap-Variable:
var objmap map[string]json.RawMessage err := json.Unmarshal(data, &objmap)
Jetzt können Sie auf die einzelnen Schlüssel-Wert-Paare innerhalb der objmap zugreifen, um die JSON-Daten weiter zu analysieren. Um beispielsweise den Wert „sendMsg“ zu analysieren:
var s sendMsg err = json.Unmarshal(objmap["sendMsg"], &s)
Ebenso können Sie den Wert „say“ als Zeichenfolge analysieren:
var str string err = json.Unmarshal(objmap["say"], &str)
Hinweis: Denken Sie daran, die Variablen in Ihrer sendMsg-Struktur zu exportieren, um ein ordnungsgemäßes Unmarshalling zu ermöglichen. Zum Beispiel:
type sendMsg struct { User string Msg string }
Ein funktionierendes Beispiel finden Sie unter https://play.golang.org/p/OrIjvqIsi4-.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Daten teilweise in einer Go-Map bereitstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!