在 asp.net WebAPI 中返回数组对象

Posted

技术标签:

【中文标题】在 asp.net WebAPI 中返回数组对象【英文标题】:Return array object in asp.net WebAPI 【发布时间】:2018-06-11 11:15:00 【问题描述】:

我想创建向 Angular 发送输入的 WEB API。我想以 array 的形式发送 JSON 格式的数据。

下面是我的代码:

[HttpGet]
[ActionName("GetEmployeeByID")]
public Employee Get(int id)

    Employee emp = null;
    while (reader.Read())
    
        emp = new Employee();
        emp.ClientId = Convert.ToInt32(reader.GetValue(0));
        emp.ClientName = reader.GetValue(1).ToString();
    
    return emp;

实际输出:

"ClientId":15,"ClientName":"Abhinav Singh"

预期输出:

["ClientId":15,"ClientName":"Abhinav Singh"]

【问题讨论】:

您正在返回一个对象。发送员工列表并将该员工添加到列表中。 如果坚持其余原则,实际输出是正确的。如果您按 Id 要求用户,您不会期望得到一个列表作为回报.. 【参考方案1】:

您的代码只返回一个元素。使用 List 将其更改为返回集合,如下所示,

  public List<Employee> Get(int id)
    
        Employee emp = null;
        List<Employee> _employees = new List<Employee>();
        while (reader.Read())
        
            emp = new Employee();
            emp.ClientId = Convert.ToInt32(reader.GetValue(0));
            emp.ClientName = reader.GetValue(1).ToString();
            _employees.Add(emp);
        
        return _employees;
     

【讨论】:

以上是关于在 asp.net WebAPI 中返回数组对象的主要内容,如果未能解决你的问题,请参考以下文章

如何将从webapi返回的自定义对象数组的HttpResponse响应分配给打字稿角度中相同数组类型的对象?

HttpResponseMessage 不返回 ByteArrayContent - ASP.NET Core

对“asp.net core WebApi”的 ajax 调用返回一个奇怪/奇怪的值

asp.net mvc 6 web api + angular资源发布数组作为对象属性

ASP.NET WebApi的返回值序列化的问题

在 ASP.NET 中使用 WebAPI 或 MVC 返回 JSON