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 oggetto usando System.Text.Json, la stringa JSON deve contenere un singolo carattere.
Descrizione delle modifiche
Nelle versioni precedenti di .NET, una stringa nel codice JSON viene deserializzata correttamente in un campo o una proprietà char. Viene usato solo il primo char della stringa, come 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 singolachar stringa genera un'eccezione JsonException quando la destinazione di deserializzazione è un oggetto char. La stringa di 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 deve avere esito positivo solo quando il payload specificato è valido per il tipo di destinazione. Per un char tipo, l'unico payload valido è una singolachar stringa.
Azione consigliata
Quando si deserializza JSON dentro char, assicurarsi che la stringa sia costituita da un singolo char.