Десериализовать нулевое свойство по умолчаниюC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Десериализовать нулевое свойство по умолчанию

Сообщение Anonymous »

Имея такой json:

Код: Выделить всё

[{"Familiy":"A","Article":null}, {"Familiy":"B","Article":"plant"}]
Я пытаюсь десериализовать его в ObservableCollection< ArticleModel >, являющийся ArticleModel следующим классом:

Код: Выделить всё

public class ArticleModel
{
public String Familiy { get; set; }
public String Article { get; set; }
}
Процесс десериализации выполняется следующим образом:

Код: Выделить всё

var settings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
};

ObservableCollection result = JsonConvert.DeserializeObject(jsonString, settings);
Проблема иногда заключается в том, что Статья получает значение null из внешнего WS, что впоследствии приводит к сбою некоторых привязок пользовательского интерфейса. Я хотел бы автоматически установить для Article строку по умолчанию, если она будет равна нулю из WS.
До сих пор я пробовал следующие подходы:
  • Укажите значение по умолчанию для свойства Article, используя [DefaultValue("")], и игнорируйте нулевые значения, используя JsonSerializerSettings< /strong>
  • Не указывать значение по умолчанию для свойства Article, но предоставить конструктор по умолчанию для ArticleModel и игнорировать нулевые значения с помощью JsonSerializerSettings
Результат тот же. Artcile имеет значение null.
Я также попробовал этот ответ, который подразумевает использование System.Text.Json вместо Newtonsoft, с тем же результатом, что и раньше.

Подробнее здесь: https://stackoverflow.com/questions/791 ... as-default
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»