[英]How to retrieve result in json object format instead json array in webapi c#
我有以下简单的代码给出了雇员的名单,我还not added any formatter
result in json array
格式获取result in json array
。
我希望它作为具有一个已定义键的json对象,如何实现呢?
public HttpResponseMessage GetEmployee([FromUri(Name ="")]FilterEntity filters)
{
try
{
string contentType=Request.Headers.Accept.ToString();
if (String.Equals(contentType, Ecng_APIMsg.ContentType))
{
var empDetails = _empService.GetEMployee(filters.systemId, filters.pageIndex, filters.pageSize, filters.sortDirection);
if (empDetails != null)
{
return Request.CreateResponse(HttpStatusCode.OK, empDetails);
}
}
}
catch(Exception ex)
{
}
}
输出-
[
{
"Id": 43,
"EmpId": 11
},
{
"Id": 42,
"EmpId": 12
}
]
预期
"data" : [
{
"Id": 43,
"EmpId": 11
},
{
"Id": 42,
"EmpId": 12
}
]
data
必须在那里作为该json对象的键。 我试图像下面的代码来实现这一点,这是行不通的,我在这里丢失了一些东西-
var response = Request.CreateResponse(HttpStatusCode.OK, empDetails);
response.Content = new StringContent(response.ToString(), System.Text.Encoding.UTF8, "application/json");
return response;
希望您的代码“ var empDetails
”中是List<Employee>
(Employee类的列表)
根据您的JSON结构,我猜您的Employee类如下
public class Employee
{
public int Id{ get; set; }
public int EmpId{ get; set; }
}
这就是返回json结构时返回的原因
[
{
"Id": 43,
"EmpId": 11
},
{
"Id": 42,
"EmpId": 12
}
]
如果您希望按需要更改json数据,则创建另一个名为EmployeeVM的类
public class EmployeeVM
{
public List<Employee> data{ get; set; }
}
并根据您的代码构造EmployeeVM,然后从您的Web API返回EmployeeVM作为json。
public class clsDemo
{
public Object data { get; set; }
}
clsDemo ObjDemo = new clsDemo();
ObjDemo.data = empList;//Your 'empDetails'
String result = JsonConvert.SerializeObject(ObjDemo);
您可以创建一个对象来包装集合。 使用匿名对象可以作为一种快速而简单的解决方案。
return Request.CreateResponse(HttpStatusCode.OK, new { data = empDetails });
根据上述原始示例,对代码的上述更新将产生
{
"data" : [
{
"Id": 43,
"EmpId": 11
},
{
"Id": 42,
"EmpId": 12
}
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.