C# WebAPI返回不带根节点的JSON数组
我在EmployeeController中有以下示例代码,它创建了两个雇员,将他们添加到雇员列表中,然后在get请求中返回雇员列表。从代码返回的JSON将Employees包含为根节点。我需要返回一个不带Employees属性的JSON数组,因为每当我尝试将JSON结果解析为对象时,都会出现错误,除非我手动重新格式化字符串以不包含它C# WebAPI返回不带根节点的JSON数组,c#,json,json.net,asp.net-web-api2,C#,Json,Json.net,Asp.net Web Api2,我在EmployeeController中有以下示例代码,它创建了两个雇员,将他们添加到雇员列表中,然后在get请求中返回雇员列表。从代码返回的JSON将Employees包含为根节点。我需要返回一个不带Employees属性的JSON数组,因为每当我尝试将JSON结果解析为对象时,都会出现错误,除非我手动重新格式化字符串以不包含它 public class Employee { public int EmployeeID { get; set; } public string
public class Employee
{
public int EmployeeID { get; set; }
public string Name { get; set; }
public string Position { get; set; }
}
public class EmployeeList
{
public EmployeeList()
{
Employees = new List<Employee>();
}
public List<Employee> Employees { get; set; }
}
public class EmployeeController : ApiController
{
public EmployeeList Get()
{
EmployeeList empList = new EmployeeList();
Employee e1 = new Employee
{
EmployeeID = 1,
Name = "John",
Position = "CEO"
};
empList.Employees.Add(e1);
Employee e2 = new Employee
{
EmployeeID = 2,
Name = "Jason",
Position = "CFO"
};
empList.Employees.Add(e2);
return empList;
}
}
这是我需要返回的JSON结果
[
{"EmployeeID":1,"Name":"John","Position":"CEO"},
{"EmployeeID":2,"Name":"Jason","Position":"CFO"}
]
非常感谢您的帮助,因为我对WEBAPI和解析JSON结果还不熟悉,这是因为您实际返回的不是
列表,而是包含列表的对象(EmployeeList)。
将其更改为返回Employee[]
(一个Employee数组)或仅返回一个列表
,而周围没有类返回的不是列表,而是一个包含嵌入列表的对象。将方法的签名更改为:
public List<Employee> Get()
你犯了什么错误?调用API的代码是什么?我将更多地关注重构客户端代码解析,而不是尝试使用默认行为,看起来您的API代码非常简单,我会保持这种方式。
public List<Employee> Get()
return empList.Employees;