Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Um ein Char mit System.Text.Json erfolgreich zu deserialisieren, muss die JSON-Zeichenfolge ein einzelnes Zeichen enthalten.
Änderungsbeschreibung
In bisherigen .NET-Versionen wurde eine Zeichenfolge mit mehreren char
-Variablen in der JSON-Datei erfolgreich in eine char
-Eigenschaft oder ein CHAR-Feld deserialisiert. Es wird nur der erste char
der Zeichenfolge verwendet, wie im folgenden Beispiel gezeigt:
// .NET Core 3.0 and 3.1: Returns the first char 'a'.
// .NET 5 and later: Throws JsonException because payload has more than one char.
char deserializedChar = JsonSerializer.Deserialize<char>("\"abc\"");
In .NET 5 und höher bewirkt etwas anderes wie eine Zeichenfolge mit einem einzelnen char
, dass eine JsonException-Ausnahme ausgelöst wird, wenn es sich bei dem Deserialisierungsziel um ein char
handelt. Die folgende Beispielzeichenfolge wird in allen .NET-Versionen erfolgreich deserialisiert:
// Correct usage.
char deserializedChar = JsonSerializer.Deserialize<char>("\"a\"");
Eingeführt in Version
5.0
Grund für die Änderung
Das Parsen für die Deserialisierung sollte nur erfolgreich sein, wenn die bereitgestellten Nutzdaten für den Zieltyp gültig sind. Bei einem char
-Typ bestehen gültige Nutzdaten aus einer Zeichenfolge mit einem einzelnen char
-Zeichen.
Empfohlene Maßnahme
Wenn Sie JSON-Werte in ein char
-Ziel deserialisieren, stellen Sie sicher, dass die Zeichenfolge aus einem einzelnen char
besteht.