Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab .NET 9 führt die Deserialisierung von null JSON-Werten in JsonDocument zu Dokumenten vom Typ JsonValueKind.Null, die nicht null sind.
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 });
Eingeführte Version
.NET 9
Vorheriges Verhalten
In .NET 8 und früheren Versionen gibt das Deserialisieren von null JSON-Werten zu JsonDocumentnull Ergebnisse zurück.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // True.
Neues Verhalten
Ab .NET 9 führt die Deserialisierung von null JSON-Werten in JsonDocument zu nicht-null Instanzen von JsonValueKind.Null.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // False.
Console.WriteLine(doc is { RootElement.ValueKind: JsonValueKind.Null }); // True.
Art der einschneidenden Änderung
Diese Änderung ist eine Verhaltensänderung.
Grund für Änderung
Diese Änderung behebt eine Inkonsistenz zwischen JSON-Nullen auf Stammebene und geschachtelten Nullen in einem Dokument. Es macht es auch konsistent mit dem Verhalten der JsonDocument.Parse Methoden. Das Verhalten der Rückgabe null wurde als Fehler eingestuft und aktualisiert, um dem erwarteten Ergebnis zu entsprechen.
Empfohlene Aktion
Aktualisieren Sie den Code, der deserialisierte Objekte verwendet, die JsonDocument-Typen enthalten, sodass er JsonValueKind.Null anstelle von null erwartet.