Сделать генерацию исключения во время десериализации json - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте Есть такой класс:
Листинг программы
  1. class Message {
  2. public int intField;
  3. }
И такой json:
Листинг программы
  1. {}
Что нужно сделать, чтобы во время десериализации выскакивал exception, гооворящий что в json-е нету поля intField?

Решение задачи: «Сделать генерацию исключения во время десериализации json»

textual
Листинг программы
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using Newtonsoft.Json.Schema;
  4.  
  5. public class Program
  6. {
  7.     public static void Main(string[] args)
  8.     {
  9.         string json = @"{}";
  10.         var message = DeserializeFromJson<Message>(json);
  11.     }
  12.  
  13.     static T DeserializeFromJson<T>(string json)
  14.     {
  15.         var schemaGenerator = new JsonSchemaGenerator();
  16.         var typeSchema = schemaGenerator.Generate(typeof (T));
  17.         var jObject = JObject.Parse(json);
  18.  
  19.         if (!jObject.IsValid(typeSchema))
  20.             throw new JsonSchemaException("Json doesn't match to class schema");
  21.  
  22.         return JsonConvert.DeserializeObject<T>(json);
  23.     }
  24.  
  25.     class Message
  26.     {
  27.         public int intField;
  28.     }
  29. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут