如何在ASP.NET Core Web API中返回整数、字符串和JSON数据
在ASP.NET Core Web API中返回统一格式的结果
有两种常见的实现方式,都能满足你同时返回数字、字符串和列表数据的需求:
方式一:使用匿名对象快速实现
直接在API方法里构造匿名对象,通过Ok()方法返回即可,ASP.NET Core会自动将其序列化为符合你期望的JSON格式:
[Microsoft.AspNetCore.Mvc.HttpGet("myAPI")] public IActionResult myAPI() { List<Customer> listName = new List<Customer>(); listName.Add(new Customer(1, "name1")); listName.Add(new Customer(2, "name2")); listName.Add(new Customer(3, "name3")); int codeResult = 222; string message = "mymessage"; // 直接构造匿名对象返回 return Ok(new { codeResult, message, data = listName }); }
这种方式无需额外定义类,适合快速实现单一API的返回需求,最终输出的JSON结构完全匹配你给出的示例。
方式二:定义通用响应类(推荐用于多API统一格式)
如果你的项目中有多个API需要返回相同结构的结果,建议定义一个通用的响应类,方便复用和维护:
首先创建通用响应类:
public class ApiResponse<T> { public int CodeResult { get; set; } public string Message { get; set; } public T Data { get; set; } }
然后修改API方法的返回逻辑:
[Microsoft.AspNetCore.Mvc.HttpGet("myAPI")] public IActionResult myAPI() { List<Customer> listName = new List<Customer>(); listName.Add(new Customer(1, "name1")); listName.Add(new Customer(2, "name2")); listName.Add(new Customer(3, "name3")); int codeResult = 222; string message = "mymessage"; // 实例化通用响应类并赋值 var response = new ApiResponse<List<Customer>> { CodeResult = codeResult, Message = message, Data = listName }; return Ok(response); }
ASP.NET Core默认的JSON序列化配置会自动将类的大驼峰属性转换为小驼峰,所以最终输出的JSON格式和你期望的完全一致。
内容的提问来源于stack exchange,提问作者user20215415
相关产品推荐
相关产品推荐

