Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начиная с .NET 9, десериализация null значений JSON в JsonDocument приводит к ненулевому документу типа 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 });
Представленная версия
.NET 9
Предыдущее поведение
В .NET 8 и более ранних версиях десериализация значений JSON null в JsonDocument возвращает результаты null.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // True.
Новое поведение
Начиная с .NET 9, десериализация значений JSON из null в JsonDocument возвращает ненулевые экземпляры JsonValueKind.Null.
var doc = JsonSerializer.Deserialize<JsonDocument>("null");
Console.WriteLine(doc is null); // False.
Console.WriteLine(doc is { RootElement.ValueKind: JsonValueKind.Null }); // True.
Тип критического изменения
Причина изменения
Это изменение устраняет несоответствие между значениями JSON корневого уровня и вложенными значениями NULL в документе. Он также обеспечивает согласованность с поведением методов JsonDocument.Parse. Поведение возврата null считалось ошибкой и было обновлено для соответствия ожидаемому результату.
Рекомендуемое действие
Обновите код, который использует десериализированные объекты, содержащие типы JsonDocument, чтобы ожидать типы JsonValueKind.Null вместо null.