System.Text.Json nécessite une chaîne mono-char pour désérialiser un char
Pour bien désérialiser un Char à l’aide de System.Text.Json, la chaîne JSON doit contenir un caractère unique.
Description de la modification
Dans les versions .NET précédentes, une chaîne multi-char
du fichier JSON est désérialisée dans une propriété ou un champ char
. Seul le premier char
de la chaîne est utilisé, comme dans l’exemple suivant :
// .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\"");
Dans .NET 5 et versions ultérieures, tout ce qui est différent d’une chaîne à char
unique entraîne la levée d’une JsonException lorsque la cible de désérialisation est un char
. L’exemple de chaîne suivant est désérialisé dans toutes les versions de .NET :
// Correct usage.
char deserializedChar = JsonSerializer.Deserialize<char>("\"a\"");
Version introduite
5,0
Raison du changement
L’analyse pour la désérialisation ne doit réussir que lorsque la charge utile fournie est valide pour le type cible. Pour un type char
, la seule charge utile valide est une chaîne à char
unique.
Action recommandée
Lorsque vous désérialisez JSON dans une cible char
, assurez-vous que la chaîne se compose d’un seul char
.