JSON的嵌套对象反序列化会导致一个空对象
本文关键字:对象 一个 嵌套 反序列化 JSON | 更新日期: 2023-09-27 18:19:15
大家好
我正在尝试使用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 { 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; }
}
当对对象进行反序列化时,我看到SubObjA集合没有填充(Count = 0)
var Helper = new JavaScriptSerializer().Deserialize<ClassA[]>(Request["TheJSONIAmDeserializing"]);
为什么集合没有被填充?(标记AJAX,因为请求["])
SubObjA在你的例子中是一个单一对象,但在你的类中它是一个集合,所以JSON应该看起来像
[{"ObjA":"FOO",
"SubObjA":[{
"A":0,
"B":true,
"C":2,
"D":0.2
}],
"ObjB":false,
"ObjC":295,
}]