System.Text.Json richiede una stringa a singolo carattere per la deserializzazione di un char
Per deserializzare correttamente un Char usando System.Text.Json, la stringa JSON deve contenere un singolo carattere.
Descrizione delle modifiche
Nelle versioni precedenti di .NET, una stringa multi-char
nel codice JSON viene deserializzata correttamente in una proprietà o campo char
. Viene usato solo il primo char
della stringa, come indicato nell'esempio seguente:
// .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 e versioni successive, qualsiasi elemento diverso da una stringa a singolo char
genera un'eccezione JsonException quando la destinazione della deserializzazione è un char
. La stringa dell'esempio seguente viene deserializzata correttamente in tutte le versioni di .NET:
// Correct usage.
char deserializedChar = JsonSerializer.Deserialize<char>("\"a\"");
Versione introdotta
5.0
Motivo della modifica
L'analisi per la deserializzazione dovrebbe avere esito positivo solo quando il payload specificato è valido per il tipo di destinazione. Per un tipo char
, l'unico payload valido è una stringa a singolo char
.
Azione consigliata
Quando si deserializza il codice JSON in una destinazione di tipo char
, assicurarsi che la stringa sia costituita da un singolo char
.
API interessate
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per