Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET 9-től kezdve a null JSON-értékek deszerializálása nem null értékű, JsonDocumenttípusú dokumentumokat eredményez JsonValueKind.Null-ként.
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 });
Bevezetett verzió
.NET 9
Előző viselkedés
A .NET 8 és korábbi verzióiban null JSON-értékek deszerializálása JsonDocumentnull eredményt ad vissza.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // True.
Új viselkedés
A .NET 9-től kezdve null JSON-értékek deszerializálása JsonDocument visszaadja a JsonValueKind.Nullnem null értékű példányait.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // False.
Console.WriteLine(doc is { RootElement.ValueKind: JsonValueKind.Null }); // True.
A kompatibilitástörő változás típusa
Ez a változás viselkedésbeli változás.
A változás oka
Ez a módosítás a legfelső szintű JSON-nullok és a beágyazott nullértékek közötti ellentmondást oldja meg egy dokumentumban. Összhangban van a JsonDocument.Parse metódusok viselkedésével is. A null visszatérési viselkedése hibaként lett értelmezve, és a várt eredményhez igazodva frissült.
Javasolt művelet
A kód frissítése, amely deszerializált, JsonDocument típusú objektumokat használ, hogy JsonValueKind.Nullhelyett null típusra számítson.