JsonIgnore
С
JsonIgnore ключ не попадает
ни в JSON при записи, ни в объект
при чтении. Условие
WhenWritingNull пропускает
свойство только при
null. Переименование -
JsonPropertyName,
обязательность -
JsonRequired.
Синтаксис
using System.Text.Json.Serialization;
[JsonIgnore]
public string Hidden { get; set; }
Пример
Давайте не записывать свойство
Skip:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Data
{
public string Keep { get; set; }
[JsonIgnore]
public string Skip { get; set; }
}
class Program
{
static void Main()
{
string json = JsonSerializer.Serialize(
new Data { Keep = "abcde", Skip = "x" });
bool res = !json.Contains("Skip");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте прочитать JSON без ключа
Skip:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Data
{
public string Keep { get; set; }
[JsonIgnore]
public int Skip { get; set; } = 99;
}
class Program
{
static void Main()
{
var data = JsonSerializer.Deserialize<Data>(
"{\"Keep\":\"abcde\"}");
int res = data.Skip;
Console.WriteLine(res);
}
}
Результат выполнения кода:
99
Пример
Давайте пропустить null при записи:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Msg
{
public string Title { get; set; } = "abcde";
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public string Note { get; set; }
}
class Program
{
static void Main()
{
string json = JsonSerializer.Serialize(
new Msg { Title = "abcde", Note = null });
bool res = json.Contains("abcde")
&& !json.Contains("Note");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
JsonPropertyName,
имя в JSON -
JsonInclude,
включить непубличное -
JsonRequired,
поле обязательно -
JsonExtensionData,
лишние поля