Heim >Backend-Entwicklung >Golang >Wie kann ich JSON teilweise in eine Go-Map entmarshalieren?

Wie kann ich JSON teilweise in eine Go-Map entmarshalieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-01 10:19:10737Durchsuche

How to Partially Unmarshal JSON into a Go Map?

Teilweises Entmarshalling von JSON in einer Karte in Go

Teilweises Unmarshalling von JSON-Daten in einer Karte kann nützlich sein, wenn das JSON in einer bestimmten Struktur strukturiert ist Weise mit einer Schlüssel-Wert-Struktur, bei der der Schlüssel den Typ des Werts identifiziert. Dieser Ansatz ermöglicht eine effiziente Verarbeitung und typspezifische Handhabung der Daten.

Betrachten Sie das folgende JSON-Beispiel:

{
    "sendMsg":{"user":"ANisus","msg":"Trying to send a message"},
    "say":"Hello"
}

Um diesen JSON mit dem Paket „encoding/json“ zu analysieren, können Sie Entpacken Sie es in eine Zuordnung von Zeichenfolgen zu JSON-„RawMessage“-Objekten:

var objmap map[string]json.RawMessage
err := json.Unmarshal(data, &objmap)
// Accessing the "sendMsg" value:
var s sendMsg
err = json.Unmarshal(objmap["sendMsg"], &s)

// Accessing the "say" value:
var str string
err = json.Unmarshal(objmap["say"], &str)

To Beim Unmarshalling in bestimmte Datentypen müssen Sie die Strukturfelder in Ihrer sendMsg-Struktur exportieren:

type sendMsg struct {
    User string
    Msg  string
}

Dieser Ansatz bietet Flexibilität bei der Handhabung von JSON-Daten mit unterschiedlichen Strukturen und ermöglicht typsicheres Unmarshalling basierend auf der Eingabe das JSON-Objekt.

Das obige ist der detaillierte Inhalt vonWie kann ich JSON teilweise in eine Go-Map entmarshalieren?. 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