从WebAPI操作方法返回单个元素而不是数组

时间:2017-01-30 10:04:30

标签: 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", 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","FullName":"Md Delower Hossain"}

为了编程目的,应省略括号[]。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您的代码 返回"标准JSON格式",它只是一个数组。

这是因为DataTable正如其名称所示,包含一个数据表。即使表包含一行,其数据也将作为数组返回,在本例中为一个元素长的数组。

如果你总是想要返回第一行,那就这样做:

public DataRow GetLoginEmployeeInfo()
{
    // ...
    return dataTable.Rows[0];
}

考虑创建一个包含这些属性而不是DataTable的模型类。