【发布时间】:2021-09-16 13:07:28
【问题描述】:
我正在尝试反序列化一个对象,该对象基本上具有一组对象,其中每个对象都有一个具有对象类型和对象实例的属性。架构看起来有点像这样:
public class MainObject
{
public IEnumerable<Parent> Parents { get; set; }
}
public class Parent
{
public string NameOfChildObjectType { get; set; }
public Object Child { get; set; }
}
public class Child_1
{
//some props
}
public class Child_2
{
//some props but different as child 1 or 3
}
public class Child_3
{
// completely different props literally the only thing we have in common is us being children
}
还有Json文件
{
"id": "1",
"Name": "MainObjectName",
"Parents": [
{
"ChildName": "ChildOfType1",
"Parameters": {
"Name": "Jordan"
}
},
{
"ChildName": "ChildOfType2",
"Parameters": {
"Height": "6`2"
}
},
{
"ChildName": "ChildOfType3",
"Parameters": {
"OwnedPets": [
{
"DogName": "JJ",
"FishName": "Shrimp"
}
],
"MaxHeadRotation": "45"
}
}
]
}
那么有什么方法可以定义一个不在列表中的所有对象之间共享的泛型类型,甚至可以一次反序列化它们? 任何想法表示赞赏。
【问题讨论】:
-
这不起作用吗?将 Child 的类型设置为 object 应该是您所需要的。
-
如果您需要帮助,您必须发布一个 json。
-
@Serge 模拟 json 应该启动
-
@Métoule 确实如此,但我希望有一个更优雅的解决方案
标签: c# json asp.net-core json.net