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,因为请求["])

JSON的嵌套对象反序列化会导致一个空对象

SubObjA在你的例子中是一个单一对象,但在你的类中它是一个集合,所以JSON应该看起来像

[{"ObjA":"FOO",
  "SubObjA":[{
    "A":0,
    "B":true,
    "C":2,
    "D":0.2
    }],
  "ObjB":false,
  "ObjC":295,
  }]

相关文章: