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.

Podczas deserializacji kodu JSON w char obiekcie docelowym upewnij się, że ciąg składa się z jednego charelementu .

Dotyczy interfejsów API