【发布时间】:2020-01-06 14:34:48
【问题描述】:
我有一个对象
public class GeneralResponseClass
{
public int ErrorCode { set; get; }
public string Date { set; get; }
public String ErrorMessage { set; get; }
public List<dynamic> Data = new List<dynamic>();
public bool Success { set; get; }
public GeneralResponseClass()
{
Date = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
}
}
在我的 API 函数中我想返回对象
[HttpGet]
public GeneralResponseClass Get()
{
GeneralResponseClass generalResponseClass = new GeneralResponseClass();
generalResponseClass.ErrorCode = 0;
generalResponseClass.ErrorMessage = "";
generalResponseClass.Success = false;
generalResponseClass.Data.Add(new
{
Name = "User 1",
Email = "User1@user.com"
});
generalResponseClass.Data.Add(new
{
Name = "User 2",
Email = "User2@user.com"
});
return generalResponseClass;
}
在我得到的响应中没有得到列表
{
errorCode: 0,
date: "06/01/2020 16:32:12",
errorMessage: "",
success: false
}
为什么列表数据不返回?
【问题讨论】:
-
在
.Net Core中是可能的。 -
匿名类型只是语法糖。编译时,会为其生成一个类,但您的应用程序除了在编译时没有此类型的范围。就像您使用
List<object>一样。 JSON 序列化器没有任何类型信息来反映因此没有返回。 -
如果您定义了任何 API 序列化程序设置,请发布。我的猜测是,您将其定义为一个字段,并且可能是序列化程序设置阻止反序列化它。尝试将其设为属性而不是字段。