Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dimulai dengan .NET 9, deserialisasi nilai JSON null menjadi JsonDocument menghasilkan dokumen non-null jenis 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 });
Versi yang diperkenalkan
.NET 9
Perilaku sebelumnya
Di .NET 8 dan versi yang lebih lama, deserialisasi null nilai JSON ke dalam JsonDocument mengembalikan hasil null.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // True.
Perilaku baru
Mulai dari .NET 9, deserialisasi null nilai JSON ke dalam JsonDocument mengembalikan instans non-null JsonValueKind.Null.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // False.
Console.WriteLine(doc is { RootElement.ValueKind: JsonValueKind.Null }); // True.
Jenis perubahan mendasar
Perubahan ini adalah perubahan perilaku .
Alasan perubahan
Perubahan ini mengatasi ketidakkonsistensian antara JSON tingkat akar null dan null berlapis dalam dokumen. Ini juga menjadikannya konsisten dengan perilaku metode JsonDocument.Parse. Perilaku pengembalian null dianggap bug dan diperbaiki agar sesuai dengan hasil yang diharapkan.
Tindakan yang direkomendasikan
Perbarui kode yang menggunakan objek deserialisasi yang berisi jenis JsonDocument untuk mengharapkan JsonValueKind.Null alih-alih null.