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

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

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

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

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

textual
Листинг программы
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Schema;
 
public class Program
{
    public static void Main(string[] args)
    {
        string json = @"{}";
        var message = DeserializeFromJson<Message>(json);
    }
 
    static T DeserializeFromJson<T>(string json)
    {
        var schemaGenerator = new JsonSchemaGenerator();
        var typeSchema = schemaGenerator.Generate(typeof (T));
        var jObject = JObject.Parse(json);
 
        if (!jObject.IsValid(typeSchema))
            throw new JsonSchemaException("Json doesn't match to class schema");
 
        return JsonConvert.DeserializeObject<T>(json);
    }
 
    class Message
    {
        public int intField;
    }
}

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


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

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

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