C # игнорировать свойства, которые являются нулевыми - PullRequest
0 голосов
/ 06 февраля 2019

Я делаю C # Web Api Application, используя Framewrok 4.5

Метод получения class, определенного следующим образом

public class BGBAResultadoOperacion
    {

        public string Codigo { get; set; }
        public string Severidad { get; set; }
        [DataMember(Name = "Descripcion", EmitDefaultValue = false)]
        public string Descripcion { get; set; }
    }

Мне НЕ нужно извлекать те свойства, которые NULL.По этой причине я определил свойство Descripcion как

[DataMember(Name = "Descripcion", EmitDefaultValue = false)]

Поскольку я не могу удалить свойство из класса, я конвертирую класс в Json

 var json = new JavaScriptSerializer().Serialize(response);

Где response является экземпляром BGBAResultadoOperacion class.

Но сгенерированный Json скажет "Descripcion":"null"

Я не могу использовать Json.Net, потому что я использую Framework.4.5.

Как я могу получить данныеизбегать свойств, которые являются нулевыми?

Спасибо

1 Ответ

0 голосов
/ 06 февраля 2019

Используйте параметр NullValueHandling при сериализации с использованием Newtonsoft.Json.

Из документации :

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public Person Partner { get; set; }
    public decimal? Salary { get; set; }
}

Person person = new Person
{
    Name = "Nigal Newborn",
    Age = 1
};

string jsonIncludeNullValues = JsonConvert.SerializeObject(person, Formatting.Indented);

Console.WriteLine(jsonIncludeNullValues);
// {
//   "Name": "Nigal Newborn",
//   "Age": 1,
//   "Partner": null,
//   "Salary": null
// }

string jsonIgnoreNullValues = JsonConvert.SerializeObject(person, Formatting.Indented, new JsonSerializerSettings
{
    NullValueHandling = NullValueHandling.Ignore
});

Console.WriteLine(jsonIgnoreNullValues);
// {
//   "Name": "Nigal Newborn",
//   "Age": 1
// }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...