Schnittstellenzusicherungen bei der JSON-Deserialisierung verstehen
In Go kann die Deserialisierung von JSON-Daten in eine bestimmte Datenstruktur manchmal zu Fehlern bei der Schnittstellenkonvertierung führen. Dies tritt normalerweise auf, wenn versucht wird, einen Schnittstellentyp in einem anderen Strukturtyp zu bestätigen.
Betrachten Sie das folgende Beispiel:
type Data struct { Content string Links []string }
Beim Deserialisieren von JSON in eine Variable vom Typ „Daten“ ist es wichtig, dies zu bestätigen dass die Schnittstellenvariable (anInterface) den erwarteten Datentyp enthält. Die Zuweisung des folgenden Ausdrucks führt zu einem Laufzeitfehler:
AData2 = anInterface.(Data)
Dieser Fehler tritt auf, weil Go erwartet, dass anInterface eine Map[string]interface{} ist, obwohl es tatsächlich ein Objekt vom Typ Data enthält. Um dieses Problem zu lösen, muss unbedingt sichergestellt werden, dass anInterface auf einen Wert verweist, der strukturell mit Daten kompatibel ist.
Richtiger Deserialisierungsansatz
Die geeignete Methode zum Deserialisieren von JSON-Daten in a Die Datenstruktur soll direkt in diese Variable entmarshaliert werden:
var AData2 Data err := json.Unmarshal([]byte(value), &AData2) if err != nil { panic(err) }
Auf diese Weise verarbeitet Go automatisch die Konvertierung zwischen JSON und dem gewünschten Datentyp, um sicherzustellen, dass während der Laufzeit keine Typzusicherungsfehler auftreten.
Das obige ist der detaillierte Inhalt vonWie vermeide ich Schnittstellen-Assertionsfehler beim Deserialisieren von JSON in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!