Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1291 of 1492 menu
◀ ▶

RespectNullableAnnotations

При RespectNullableAnnotations = true и #nullable enable свойство string Name без ? не принимает JSON null: JsonException. Без флага null записывается в такое свойство.

Синтаксис

options.RespectNullableAnnotations = true;

Пример

Давайте разобрать null с учётом аннотаций:

#nullable enable using System; using System.Text.Json; class Item { public string Name { get; set; } } class Program { static void Main() { var options = new JsonSerializerOptions { RespectNullableAnnotations = true }; try { JsonSerializer.Deserialize<Item>( "{\"Name\":null}", options); } catch (JsonException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"fail"

Пример

Давайте разобрать null без флага:

#nullable enable using System; using System.Text.Json; class Item { public string Name { get; set; } } class Program { static void Main() { Item item = JsonSerializer.Deserialize<Item>( "{\"Name\":null}"); bool res = item.Name == null; Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте разобрать строку с флагом:

#nullable enable using System; using System.Text.Json; class Item { public string Name { get; set; } } class Program { static void Main() { var options = new JsonSerializerOptions { RespectNullableAnnotations = true }; Item item = JsonSerializer.Deserialize<Item>( "{\"Name\":\"abcde\"}", options); Console.WriteLine(item.Name); } }

Результат выполнения кода:

"abcde"

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить