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
.
API affectées
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour