Einführung
Ihre JSON-Daten haben ein unbekanntes Format, was eine Herausforderung beim Unmarshalling darstellt es in eine GoLang-Struktur. Dieser Artikel führt Sie durch die Schritte zur effektiven Bewältigung dieses Szenarios.
Unmarshalieren mit der Map[string]-Schnittstelle{}
Da Sie die Schlüssel nicht kennen Im Voraus können Sie „map[string]interface{}“ verwenden, um Ihre JSON-Nutzlast zu entmarshalieren. Dadurch können Sie die Schlüssel-Wert-Paare als Zuordnung speichern, ohne die Typen der Werte anzugeben.
var grades map[string]interface{} err := json.Unmarshal([]byte(jsonString), &grades) fmt.Println(err) fmt.Printf("%#v\n", grades)
Dadurch werden die JSON-Daten als verschachtelte Zuordnung von Zeichenfolgen an Schnittstellen ausgegeben, was nützlich sein kann für Überprüfen und verarbeiten Sie die Daten dynamisch.
Mit json:"-" Tag
Sie Mit dem Tag json:"-" können Sie bestimmte Felder vom JSON-Marshalling/Unmarshaling ausschließen. Dies kann nützlich sein, wenn Sie einige Daten privat halten oder Zirkelverweise vermeiden möchten.
type GradeData struct { Grades map[string]interface{} `json:"-"` } var gradesData GradeData err := json.Unmarshal([]byte(jsonString), &gradesData.Grades) fmt.Println(err) fmt.Printf("%#v\n", gradesData)
In diesem Beispiel wird das Feld „Grades“ nicht in die JSON-Darstellung von „gradesData“ aufgenommen, kann aber dennoch verwendet werden um die JSON-Daten zu speichern und abzurufen.
Fazit
Durch die Verwendung von map[string]interface{} und dem Mit dem Tag json:"-" können Sie JSON-Daten unbekannten Formats erfolgreich in GoLang-Strukturen entpacken. Mit diesem Ansatz können Sie elegant mit dynamischen und unbekannten JSON-Strukturen umgehen.
Das obige ist der detaillierte Inhalt vonWie kann ich unbekannte JSON-Formate in Go entmarshalieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!