Heim >Backend-Entwicklung >Golang >Wie entmarshaliere ich unbekannte JSON-Datenstrukturen in Go?
Unmarshalieren von JSON-Daten unbekannten Formats
Das bereitgestellte JSON folgt einem bestimmten Muster:
{ SUBJECT1: [{Student_Name1: Grade, Student_Name2: Grade, ... , Student_Name3: Grade, timestamp: Timestamp(...)}], SUBJECT2: [{Student_Name4: Grade, Student_Name6: Grade, ... , Student_Name5: Grade, timestamp: Timestamp(...)}] ... SUBJECTN: [{Student_Name1: Grade, Student_Name6: Grade, ... , Student_Name9: Grade, timestamp: Timestamp(...)}] }
Ziel: Entpacken Sie den JSON in eine GoLang-Struktur, um ihn als JSON zurückzugeben Objekt.
Lösung:
Option 1: Map[string]interface verwenden{}
Da die JSON-Schlüssel vorhanden sind unbekannt, wir können map[string]interface{} verwenden, um das zu entmarshalieren Nutzlast.
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades) fmt.Println(err) fmt.Printf("%#v\n", grades)
Option 2: Verwenden einer Struktur
Wenn eine Struktur gewünscht wird, verwenden Sie das Tag json:"-", um Felder während des JSON-Marshallings zu ignorieren/ Unmarshalling.
type GradeData struct { Grades map[string]interface{} `json:"-"` } err := json.Unmarshal([]byte(jsonString), &gradesData.Grades) fmt.Println(err) fmt.Printf("%#v\n", gradesData)
Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich unbekannte JSON-Datenstrukturen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!