C# JSON的嵌套对象反序列化将导致空对象
你好 我试图使用Javascriptserializer将JSON对象反序列化为C#类。此对象包含嵌套对象。以下是对象的表示:C# JSON的嵌套对象反序列化将导致空对象,c#,ajax,json,deserialization,javascriptserializer,C#,Ajax,Json,Deserialization,Javascriptserializer,你好 我试图使用Javascriptserializer将JSON对象反序列化为C#类。此对象包含嵌套对象。以下是对象的表示: [{"ObjA":"FOO", "SubObjA":{ "A":0, "B":true, "C":2, "D":0.2 }, "ObjB":false, "ObjC":295, }] 在c#中,我为以下内容创建了类: public class ClassA { public string ObjA { g
[{"ObjA":"FOO",
"SubObjA":{
"A":0,
"B":true,
"C":2,
"D":0.2
},
"ObjB":false,
"ObjC":295,
}]
在c#中,我为以下内容创建了类:
public class ClassA
{
public string ObjA { get; set; }
public Collection<SubObjA> SubObjA { get; set; }
public bool ObjB { get; set; }
public int ObjC { get; set; }
}
public class SubObjA
{
public int A { get; set; }
public bool B { get; set; }
public int C { get; set; }
public decimal D { get; set; }
}
公共类ClassA
{
公共字符串ObjA{get;set;}
公共集合子对象{get;set;}
公共布尔对象{get;set;}
public int ObjC{get;set;}
}
公共类SubObjA
{
公共int A{get;set;}
公共布尔B{get;set;}
公共int C{get;set;}
公共十进制D{get;set;}
}
反序列化对象时,我看到SubObjA集合没有填充(计数=0)
var Helper=new JavaScriptSerializer();
为什么集合没有填充?(由于请求[“”]而标记了AJAX)SubObjA在您的示例中是一个对象,但在您的类中它是一个集合,因此JSON应该如下所示
[{"ObjA":"FOO",
"SubObjA":[{
"A":0,
"B":true,
"C":2,
"D":0.2
}],
"ObjB":false,
"ObjC":295,
}]
注意SubObjA周围的括号。不是实际的类和属性名,必须进行更改以隐藏我的版本中的真实代码,除了集合之外的所有内容都正确填充该死的,你是对的。Stringify只返回大括号而不是方括号,因为它当前在集合中填充了1项。再次感谢。无法单击为什么它不工作,一切似乎都正常
[{"ObjA":"FOO",
"SubObjA":[{
"A":0,
"B":true,
"C":2,
"D":0.2
}],
"ObjB":false,
"ObjC":295,
}]