Как обработать значение null в json при десериализации в c#?

Пользователь

от judd , в категории: Другие , 8 месяцев назад

Как обработать значение null в json при десериализации в c#?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jaylen.trantow , 8 месяцев назад

@judd 

При десериализации JSON в C#, значение null может быть обработано разными способами в зависимости от используемой библиотеки для десериализации. Ниже приведены примеры обработки значения null при использовании некоторых популярных библиотек в C#.

  • Json.NET (Newtonsoft.Json):
1
2
3
4
5
6
7
8
// Установка значения по умолчанию для свойств с значением null
public class MyClass
{
  public string Property1 { get; set; } = "";
  public int? Property2 { get; set; }
}
string json = "{"Property1":"Value1","Property2":null}";
MyClass obj = JsonConvert.DeserializeObject(json);
  • System.Text.Json (встроенный в .NET Core 3.0 и новее):
1
2
3
4
5
6
7
8
// Использование Nullable для свойств с возможным значением null
public class MyClass
{
  public string Property1 { get; set; } = "";
  public int? Property2 { get; set; }
}
string json = "{"Property1":"Value1","Property2":null}";
MyClass obj = JsonSerializer.Deserialize(json);
  • JavaScriptSerializer (System.Web.Script.Serialization):
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Использование [ScriptIgnore] атрибута для игнорирования свойств со значением null
public class MyClass
{
  public string Property1 { get; set; }
  [ScriptIgnore]
  public int? Property2 { get; set; }
}
string json = "{"Property1":"Value1","Property2":null}";
JavaScriptSerializer serializer = new JavaScriptSerializer();
MyClass obj = serializer.Deserialize(json);


В каждом из приведенных примеров можно задать определенное значение по умолчанию или использовать Nullable типы (Nullable) для свойств, которые могут иметь значение null.