C#JSON—具有相同属性的不同类型的多个对象的序列化

C#JSON—具有相同属性的不同类型的多个对象的序列化,c#,json,C#,Json,我曾多次使用JSON序列化,但遇到了一个场景(我以前从未遇到过),在这个场景中,我有一个对象,可以包含任意数量的具有相同属性的类似对象。比如说 { "Objects": { "ObjectA": { "prop1": 6601, "prop2": "Prop", "propParams": [ { "

我曾多次使用JSON序列化,但遇到了一个场景(我以前从未遇到过),在这个场景中,我有一个对象,可以包含任意数量的具有相同属性的类似对象。比如说

{
"Objects": {
   "ObjectA": {
     "prop1": 6601,
     "prop2": "Prop",
     "propParams": [
       {
         "Type": 0,
         "Name": "name"
       }
     ]
  },
  "ObjectB ": {
    "prop1": 6601,
    "prop2": "Prop",
    "propParams": []
    }
   }
}
不幸的是,它不是对象的列表/数组。这是我的问题之一

因此,我有一些东西需要一些帮助、建议、指导等。
关于如何处理这些问题

我觉得我应该先从
objects
中的对象开始。如您所见,它们具有不同的类型,但包含相同的属性,这对于类中的任何对象都适用。有没有办法获取一个对象并将其“转换”为标准对象,只要它包含适当的属性?我在考虑JsonConvert。可能将对象类型作为“标准”对象的字符串属性

第二,是否有方法使
对象中的对象成为数组/列表,而不管其对象类型如何?我知道这可能必须先做,但按照我做的顺序问是有意义的


我目前正在网上搜寻任何其他帮助,但我想我会在这里询问。

对象
应被视为
字典

例如,此LINQPad查询:

void Main()
{
    JsonConvert.DeserializeObject<Payload>(@"{
    ""Objects"": {
       ""ObjectA"": {
         ""prop1"": 6601,
         ""prop2"": ""Prop"",
         ""propParams"": [
           {
             ""Type"": 0,
             ""Name"": ""name""
           }
         ]
      },
      ""ObjectB "": {
        ""prop1"": 6601,
        ""prop2"": ""Prop"",
        ""propParams"": []
        }
       }
    }").Dump();
}

public class Payload
{
    public Dictionary<string, Standard> Objects{get;set;}
}

public class Standard
{
    public int Prop1{get;set;}
    public string Prop2{get;set;}
    public List<Dictionary<string, object>> PropParams{get;set;}
}
void Main()
{
JsonConvert.DeserializeObject(@){
“对象”:{
“反对A”:{
“prop1”:6601,
“prop2”:“Prop”,
“propParams”:[
{
“”类型“”:0,
“名称”:“名称”
}
]
},
“反对B”:{
“prop1”:6601,
“prop2”:“Prop”,
“propParams”“:[]
}
}
})。Dump();
}
公共类有效载荷
{
公共字典对象{get;set;}
}
公共类标准
{
公共int Prop1{get;set;}
公共字符串Prop2{get;set;}
公共列表PropParams{get;set;}
}
将产生以下结果:


谢谢,我真的不知道,我会试试看。