Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
.NET 9'dan başlayarak, null JSON değerlerinin JsonDocument olarak seri durumdan çıkarılması, JsonValueKind.Nulltüründe null olmayan belgelere neden olur.
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 });
Sürüm kullanıma sunulmuştur
.NET 9
Önceki davranış
.NET 8 ve önceki sürümlerinde, null JSON değerlerinin seri durumdan çıkarılması JsonDocumentnull sonuçlar döndürür.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // True.
Yeni davranış
.NET 9'dan başlayarak, null JSON değerlerini JsonDocument olarak seri durumdan çıkarma işlemi, JsonValueKind.Nullnull olmayan örneklerini döndürür.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // False.
Console.WriteLine(doc is { RootElement.ValueKind: JsonValueKind.Null }); // True.
Yıkıcı değişikliğin türü
Bu değişiklik,
Değişiklik nedeni
Bu değişiklik, belgedeki kök düzeyindeki JSON null'lar ile iç içe yerleştirilmiş null'lar arasındaki tutarsızlığı giderir. Ayrıca JsonDocument.Parse yöntemlerinin davranışıyla tutarlı hale getirir.
null döndürme davranışı hata olarak kabul edildi ve beklenen sonuçla uyumlu olması için güncelleştirildi.
Önerilen eylem
JsonDocument türlerini içeren ve seri durumdan çıkarılmış nesneleri kullanan kodu, JsonValueKind.Nullyerine null bekleyecek şekilde güncelleyin.