Plik System.Text.Json wymaga ciągu z pojedynczym znakiem w celu deserializacji znaku
Aby pomyślnie wykonać Char deserializacji przy użyciu metody System.Text.Json, ciąg JSON musi zawierać pojedynczy znak.
Opis zmiany
W poprzednich wersjach platformy .NET ciąg wielociągowychar
w formacie JSON został pomyślnie zdeserializowany do char
właściwości lub pola. Używany jest tylko pierwszy char
ciąg, jak w poniższym przykładzie:
// .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\"");
W programie .NET 5 lub nowszym element inny niż jeden ciągchar
powoduje JsonException , że element docelowy deserializacji to char
. Poniższy przykładowy ciąg został pomyślnie zdeserializowany we wszystkich wersjach platformy .NET:
// Correct usage.
char deserializedChar = JsonSerializer.Deserialize<char>("\"a\"");
Wprowadzona wersja
5,0
Przyczyna wprowadzenia zmiany
Analizowanie deserializacji powinno zakończyć się powodzeniem tylko wtedy, gdy podany ładunek jest prawidłowy dla typu docelowego. W przypadku typu jedynym prawidłowym ładunkiem char
jest pojedynczychar
ciąg.
Zalecana akcja
Podczas deserializacji kodu JSON w char
obiekcie docelowym upewnij się, że ciąg składa się z jednego char
elementu .