我正在使用 .net core 2.2 制作 webapi。我是 .net 框架的新手 到目前为止,我一直在使用基于 javascript 的框架,如 nodejs expressjs。
在 nodejs 中自定义 JSON 响应很容易。你能解释一下如何使用 .NET Core 2.2 WebApi 自定义 JSON 响应吗?只需指出正确的方向即可。
举个例子,
C# 用户模型
public class User {
int id {get;set;}
string name {get;set;}
string username {get;set;}
string password {get;set;}
}
默认 API 获取响应。
public ActionResult<IEnumerable<User>> GetAll()
JSON:
[
{
"id":1,
"name": "John Doe",
"username": "john",
"password": "AH7B302Iapxf7EFzZVW0/kJDuf/I3pDPkQ42IxBTakA="
},
{
"id":2,
"name": "Jane Doe",
"username": "jane",
"password": "AH7B302Iapxf7EFzZVW0/kJDuf/I3pDPkQ42IxBTakA="
}
]
我需要像这样自定义输出。
{
"statuscode": 200,
"count" : 2,
"data" :
[
{
"name": "John Doe",
"username": "john",
},
{
"name": "Jane Doe",
"username": "jane",
}
]
}
请您参考如下方法:
您可以使用匿名对象,如果您不想为每个结果类型定义一个单独的类,它会派上用场:
public ActionResult<object> GetAll()
{
var list = _userRepository.GetAll(); // <-- if this is not (yet) an Array or a List, then force single evaluation by adding .ToArray() or .ToList()
var model = new
{
statuscode = 200,
count = list.Count, // or .Length if list is an Array
data = list.Select(x => new { name = x.name, username = x.userName })
};
return Ok(model);
}
