【发布时间】:2021-08-21 00:54:25
【问题描述】:
我有一个示例控制器,在调用时应该返回一个带有动物列表的序列化对象,其中显示所有属性。我面临的问题是它只序列化基类中的属性
型号
public class MyAnimals
{
public string Description { get; set; }
public ICollection<Animal> Animals { get; set; }
}
public class Animal
{
public string Name { set; get; }
}
public class Dog: Animal
{
public string Says { get; set; }
}
public class Cat : Animal
{
public string Likes { get; set; }
}
控制器
[HttpGet]
public IActionResult Animals()
{
var animals = new MyAnimals()
{
Description = "My favorite animals",
Animals = new List<Animal>()
{
new Cat()
{
Name = "Tom",
Likes = "Cheese"
},
new Dog()
{
Name = "Pluto",
Says = "Bark"
}
}
};
return Ok(animals);
}
当对象被序列化时,它会像这样出来
当前反应
{
"description": "My favorite animals",
"animals": [
{
"name": "Tom"
},
{
"name": "Pluto"
}
]
}
im after 所需的输出应该如下所示。请告诉我我做错了什么
必填项
{
"description": "My favorite animals",
"animals": [
{
"name": "Tom",
"Likes": "Cheese"
},
{
"name": "Pluto",
"Says": "Bark"
}
]
}
【问题讨论】:
-
查看类似问题的答案:stackoverflow.com/a/49517832/8104777
-
什么库在这里执行您的 JSON 序列化?这是 ASP.NET MVC 5?
标签: c# asp.net json inheritance serialization