如何取消json的名称,json包含实体列表以及其他属性
本文关键字:json 包含 实体 列表 属性 及其他 何取消 取消 | 更新日期: 2023-09-27 18:27:47
我有一个由MyFacebookClass列表组成的json,当我反序列化MyFacebookClass列表时,我得到了一个错误,即没有为CustomObject定义空白构造函数,尽管我已经定义了如下所示的构造函数,所以请帮我。
public class MyFacebookClass
{
public MyFacebookClass
{
data =new List<CustomObject>();
}
public string Name{get;set;}
public int Id{get;set;}
public List<CustomObject> data {get;set;}
}
public class CustomObject
{
public CustomObject()
{
}
public string id {get;set;}
public string name {get;set;}
}
我正在使用:
List<MyFacebookClass> routes_list = new List<MyFacebookClass>();
JavaScriptSerializer jSerializer = new JavaScriptSerializer();
routes_list = jSerializer.Deserialize<List<MyFacebookClass>>(json);
您发布的代码中没有CustomObject
的构造函数。基本上,构造函数是一个没有返回类型的方法,并且与声明类的名称相同。您的MyFacebookClass
确实有一个构造函数,这是关于构造函数的MSDN文档。
public class CustomObject
{
public CustomObject()
{
/* now you have a constructor */
}
public string id {get;set;}
public string name {get;set;}
}
工作非常好。我在您的代码中发现的唯一问题是,MyFacebookClass类构造函数应该有括号
public class MyFacebookClass
{
public MyFacebookClass()
{
data = new List<CustomObject>();
}
public string Name { get; set; }
public int Id { get; set; }
public List<CustomObject> data { get; set; }
}
public class CustomObject
{
public CustomObject()
{
/* now you have a constructor */
}
public string id { get; set; }
public string name { get; set; }
}
public class Main
{
public List<MyFacebookClass> Deserialize(string json)
{
List<MyFacebookClass> routes_list = new List<MyFacebookClass>();
JavaScriptSerializer jSerializer = new JavaScriptSerializer();
return jSerializer.Deserialize<List<MyFacebookClass>>(json);
}
}
[TestMethod()]
public void doSomethingTest()
{
Main target = new Main(); // TODO: Initialize to an appropriate value
Assert.AreEqual(target.Deserialize(""), null);
}