JSON-Decodierungsfehler in Go
Beim Decodieren von JSON in Strukturen mithilfe der json.Unmarshal-Funktion in Go ist es wichtig, die Umstände zu verstehen wodurch ein Fehler zurückgegeben wird.
Wenn keine Fehler zurückgegeben werden
Im Gegensatz zu einigen Sprachen meldet der JSON-Decoder in Go keinen Fehler, wenn Werte in der JSON-Quelle vorliegen entsprechen nicht den Werten in der Zielstruktur. Es wird beispielsweise nicht als Fehler betrachtet, wenn das JSON ein Feld enthält, das in der Struktur nicht vorhanden ist.
Wenn Fehler zurückgegeben werden
json.Unmarshal wird dies jedoch tun Geben Sie Fehler in den folgenden Situationen zurück:
Beispiel
Bedenken Sie den folgenden Code :
type A struct { Name string `json:"name"` } jsonString := `{"status": false}` var a A err := json.Unmarshal([]byte(jsonString), &a)
In diesem Beispiel gibt json.Unmarshal keinen Fehler zurück, auch wenn der JSON nicht das erwartete Namensfeld enthält. Der Decoder ignoriert einfach das Statusfeld und lässt das Namensfeld der A-Struktur leer.
Wenn der JSON jedoch Folgendes enthalten würde:
{"name": false}
json.Unmarshal würde einen Fehler zurückgeben weil der JSON-Wert nicht in einen String-Typ konvertiert werden kann.
Das obige ist der detaillierte Inhalt vonWann gibt json.Unmarshal in Go Fehler zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!