Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
.