ONeil Tomlinson Ответов: 1

Десериализует несколько json-файлов для создания перспективных объектов


Привет, у меня есть сценарий, в котором я возвращаю json из API, который использует JsonAPI. возвращаемый json может быть двух форматов, как показано ниже. (упрощенно для этого примера)


{  
      "attributes":{ 
    	"AnimalType":"Lion",	  
    	 "Name":"lio",
    	 "Eats":"Meat"
      }
    }



и

{  
       "attributes":{ 
    	"AnimalType":"Chicken",
    	 "Name":"Henry",
    	 "HasFeathers":true
      }
    }


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



<pre lang="c#">public abstract class Animal
        {
            public virtual string AnimalType{ get; set; }
        }
    	
    	
    public class Lion : Animal
        {
            public override string AnimalType{ get; set; }
    		public string Eats { get; set; }
            public string Name{ get; set; }
        }
    
    public class Chicken : Animal
        {
            public override string AnimalType{ get; set; }
    		public bool HasFeathers { get; set; }
            public string Name{ get; set; }
        }


Хо я могу десериализовать JSON для каждого находится подходящий объект, не используя переключатель или оператор if ?

Что я уже пробовал:

Попробовал погуглить вокруг для различных решений для этой конкретной проблемы, но не повезло

1 Ответов

Рейтинг:
1

Graeme_Grant

Я написал статью, чтобы помочь со всеми различными типами вопросов, связанных с десериализацией JSON. Вы можете найти ответ на свой вопрос в этой статье: Работа с JSON в C# и VB[^]