Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À partir de .NET 9, la désérialisation des valeurs JSON null en JsonDocument produit des documents non nuls de type JsonValueKind.Null.
using System.Text.Json;
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
// Returns true in .NET 8 and false in .NET 9.
Console.WriteLine(doc is null);
// Returns false in .NET 8 and true in .NET 9.
Console.WriteLine(doc is { RootElement.ValueKind: JsonValueKind.Null });
Version introduite
.NET 9
Comportement précédent
Dans .NET 8 et les versions antérieures, la désérialisation des valeurs JSON null dans JsonDocument renvoie des résultats null.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // True.
Nouveau comportement
À compter de .NET 9, la désérialisation des valeurs JSON null en JsonDocument renvoie des instances non-nulles de JsonValueKind.Null.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // False.
Console.WriteLine(doc is { RootElement.ValueKind: JsonValueKind.Null }); // True.
Type de changement cassant
Ce changement est un changement de comportement.
Raison de la modification
Cette modification résout une incohérence entre les valeurs NULL JSON au niveau racine et les valeurs Null imbriquées dans un document. Il le rend également cohérent avec le comportement des JsonDocument.Parse méthodes. Le comportement de retour null a été considéré comme un bogue et mis à jour pour l’alignement avec le résultat attendu.
Action recommandée
Mettez à jour le code qui utilise des objets désérialisés contenant des types JsonDocument afin qu'il attende JsonValueKind.Null plutôt que null.