Heim >Backend-Entwicklung >Golang >Wie kann ich komplexe JSON-Strukturen mit „json.Unmarshal' von Go effektiv analysieren?
Komplexes JSON mit Go Unmarshal analysieren
In Go stellt das Paket „encoding/json“ die Funktion „json.Unmarshal“ zum Parsen von JSON-Daten bereit. Diese Daten können in eine vordefinierte Struktur oder einen Interface-{}-Typ entmarshallt werden, um unerwartete Datenstrukturen zu iterieren. Das Parsen von komplexem JSON kann jedoch eine Herausforderung sein.
Betrachten Sie beispielsweise das folgende JSON:
{ "k1": "v1", "k2": "v2", "k3": 10, "result": [ [ ["v4", "v5", {"k11": "v11", "k22": "v22"}], ... ["v4", "v5", {"k33": "v33", "k44": "v44"}] ], "v3" ] }
Um dieses JSON mit json.Unmarshal zu parsen, können wir eine interface{}-Variable erstellen und Speichern Sie das analysierte Ergebnis darin:
type MyData struct { v1 string v2 string v3 int result [][]MySubData result2 string } type MySubData struct { v1 string v2 string result map[string]string } var f interface{} err := json.Unmarshal(b, &f)
Nach dem Unmarshaling ist die f-Variable eine Map mit Zeichenfolgenschlüsseln und einer leeren Schnittstelle Werte. Um auf diese Daten zuzugreifen, verwenden wir eine Typzusicherung, um f in eine Map[string]interface{} umzuwandeln und diese zu durchlaufen:
m := f.(map[string]interface{}) for k, v := range m { switch vv := v.(type) { case string: // Handle string values case int: // Handle integer values case []interface{}: // Handle array values default: // Handle unknown types } }
Dieser Ansatz ermöglicht es uns, mit unerwarteten JSON-Datenstrukturen zu arbeiten und gleichzeitig den Typ beizubehalten Sicherheit. Weitere Einzelheiten finden Sie im Originalartikel zu JSON und Go.
Das obige ist der detaillierte Inhalt vonWie kann ich komplexe JSON-Strukturen mit „json.Unmarshal' von Go effektiv analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!