Обработка неопределенных значений при десериализации объекта с использованием JsonConvert в c # - PullRequest
1 голос
/ 19 сентября 2019

У меня есть сериализованная конфигурация Json, в которой мне нужно десериализовать объект, используя

JsonConvert.DeserializeObject<>(jsonConfig)

в списке Myclass.В jsonConfig могут отсутствовать некоторые свойства, где я получил исключение, как показано ниже.

Обязательное свойство 'xxx' не найдено в JSON.Путь '[0] .yyy',

Так есть ли способ обработки неопределенных значений при десериализации объекта в c#?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

Вам нужно сделать эти свойства nullable в классе объектной модели, как показано ниже.

 [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
 public int? someProperty { get; set; }

Также, если само свойство отсутствует в классе при десериализации, вы можете сделать следующее:

 JsonSerializerSettings settings = new JsonSerializerSettings();
 settings.MissingMemberHandling = MissingMemberHandling.Ignore;

 var deserializedObj = JsonConvert.DeserializeObject<MyModelClass>(jsonConfig, settings);
0 голосов
/ 19 сентября 2019

undefined не является допустимым значением json, даже если оно допустимо в javascript.Пожалуйста, отметьте https://api.jquery.com/jQuery.parseJSON/

  • Для JSON используйте нуль вместо undefined: { "something": null }
...