Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Начиная с .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.