Wann gibt json.Unmarshal in Go Fehler zurück?

Mary-Kate Olsen
Freigeben: 2024-11-15 12:16:02
Original
801 Leute haben es durchsucht

When Does json.Unmarshal in Go Return Errors?

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. Beispielsweise wird es 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:

  • Syntaxfehler: Wenn der JSON fehlerhaft ist oder eine ungültige Syntax enthält, wird ein Fehler zurückgegeben. Die Fehlermeldung enthält Details zum Ort des Fehlers.
  • JSON-Wert nicht durch Zieltyp darstellbar:Wenn der Wert im JSON nicht in den entsprechenden Typ in der Struktur konvertiert werden kann, Es wird ein Fehler zurückgegeben. Wenn der JSON beispielsweise einen booleschen Wert enthält, das Strukturfeld jedoch eine Zeichenfolge erwartet, schlägt json.Unmarshal fehl.

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)
Nach dem Login kopieren

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}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage