JsonIgnoreCondition
Значения: Never, Always,
WhenWritingDefault, WhenWritingNull.
WhenWritingNull пропускает свойство
со значением null, как в уроке
DefaultIgnoreCondition.
Синтаксис
options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
Пример
Давайте пропустить null при записи:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Item
{
public string Name { get; set; }
public int Count { get; set; }
}
class Program
{
static void Main()
{
var options = new JsonSerializerOptions
{
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
};
Item item = new Item { Name = null, Count = 12345 };
string res = JsonSerializer.Serialize(item, options);
Console.WriteLine(res);
}
}
Результат выполнения кода:
{"Count":12345}
Пример
Давайте записать без условия пропуска:
using System;
using System.Text.Json;
class Item
{
public string Name { get; set; }
public int Count { get; set; }
}
class Program
{
static void Main()
{
Item item = new Item { Name = null, Count = 12345 };
string res = JsonSerializer.Serialize(item);
Console.WriteLine(res.Contains("\"Name\":null"));
}
}
Результат выполнения кода:
True
Пример
Давайте пропустить значения по умолчанию:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Item
{
public string Name { get; set; }
public int Count { get; set; }
}
class Program
{
static void Main()
{
var options = new JsonSerializerOptions
{
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault
};
Item item = new Item { Name = null, Count = 0 };
string res = JsonSerializer.Serialize(item, options);
Console.WriteLine(res);
}
}
Результат выполнения кода:
{}
Смотрите также
-
DefaultIgnoreCondition,
свойство в настройках -
RespectNullableAnnotations,
nullable при чтении -
Serialize,
запись JSON -
JsonSerializerOptions,
объект настроек