Asp.net 从WebAPI操作方法返回单个元素而不是数组
这是我在asp.net web api控制器中的代码Asp.net 从WebAPI操作方法返回单个元素而不是数组,asp.net,json,asp.net-web-api,Asp.net,Json,Asp.net Web Api,这是我在asp.net web api控制器中的代码 [Route("~/GetLoginEmployeeInfo")] public DataTable GetLoginEmployeeInfo() { DataTable dtUserInfo = new DataTable(); Hashtable htMenuList = new Hashtable(); htMenuList.Add("LoginKey", 20160
[Route("~/GetLoginEmployeeInfo")]
public DataTable GetLoginEmployeeInfo()
{
DataTable dtUserInfo = new DataTable();
Hashtable htMenuList = new Hashtable();
htMenuList.Add("LoginKey", 20160636);
htMenuList.Add("Passkey", 123);
dtUserInfo = DataTableByCommandFromStoredProc("GetUserByIDAndPass", htMenuList);
return dtUserInfo; }
在WebApiConfig中,我添加了:
config.Formatters.Remove(config.Formatters.XmlFormatter);
我得到的json结果是:[{“EmpID”:“20160636”,“FullName”:“Md Delower Hossain”}]
但我想这样说:{“EmpID”:“20160636”,“全名”:“Md Delower Hossain”}
出于编程目的,应省略括号[]。我能做什么?您的代码返回“标准JSON格式”,它只是一个数组
这是因为DataTable包含一个数据表,正如其名称已经给出的那样。即使该表包含一行,其数据也将作为数组返回,在本例中是一个长度为一个元素的数组
如果始终只想返回第一行,请执行以下操作:
public DataRow GetLoginEmployeeInfo()
{
// ...
return dataTable.Rows[0];
}
考虑创建一个保存这些属性的模型类,而不是数据表。不幸的是,
DataRow
不可序列化,因此这可能会失败。不过,正如您所写,使用自定义类也可以工作。如果不从数据表返回数组,它不可能返回对象吗?因为数据表有很多行。@Md.DelowerHossain“数据表有很多行”-那么为什么不想返回数组?linq优先还是默认?返回dtUserInfo.FirstOrDefault()@布莱恩·德林格·蒂,这是工作