DefaultIgnoreCondition
DefaultIgnoreCondition использует
JsonIgnoreCondition.
WhenWritingNull пропускает null,
WhenWritingDefault - ещё 0
и false. Задаётся в
JsonSerializerOptions.
Синтаксис
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}
Пример
Давайте использовать WhenWritingDefault:
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);
}
}
Результат выполнения кода:
{}
Пример
Давайте сравнить без условия:
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"));
}
}
Результат выполнения кода:
True
Смотрите также
-
JsonIgnoreCondition,
значения перечисления -
RespectNullableAnnotations,
аннотации null -
Serialize,
запись JSON -
JsonSerializerOptions,
объект настроек