0

再会

我正在尝试使用 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 集合没有填充(计数 = 0)

var Helper = new JavaScriptSerializer().Deserialize<ClassA[]>(Request["TheJSONIAmDeserializing"]);

为什么集合没有填充?(由于 Request[""] 被标记为 AJAX)

4

1 回答 1

2

您的示例中的 SubObjA 是单个对象,但在您的类中它是一个集合,因此 JSON 应该看起来像

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

注意 SubObjA 周围的括号。

于 2013-06-21T08:40:45.097 回答