Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JSON的嵌套对象反序列化将导致空对象_C#_Ajax_Json_Deserialization_Javascriptserializer - Fatal编程技术网

C# JSON的嵌套对象反序列化将导致空对象

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

你好

我试图使用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; }
}
公共类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,
  }]