Microsoft.AspNetCore.Mvc
命名空间中有两个类:
ObjectResult
和JsonResult
。
它们都将返回的对象转换为JSON格式。
它们之间的区别是什么,以及使用它们的目的是什么?
Microsoft.AspNetCore.Mvc
命名空间中有两个类:
ObjectResult
和JsonResult
。
它们都将返回的对象转换为JSON格式。
它们之间的区别是什么,以及使用它们的目的是什么?
JsonResult
是实现了IActionResult
接口的类型,它会将给定的对象格式化为JSON。
ObjectResult
是一个实现了IActionResult
接口的类型,内部集成了内容协商功能。
在其ExecuteResultAsync
方法中,框架会遍历可用的格式化器,并选择一个相关的格式化器来进行响应流写入操作。
选择格式化器的逻辑类似于ASP.NET Web API,基于以下优先级:
OkObjectResult类
Microsoft.AspNetCore.Mvc.ObjectResult
在执行时会执行内容协商、格式化实体主体,并在协商和格式化成功时生成Microsoft.AspNetCore.Http.StatusCodes.Status200OK
响应。
参考资料:
JsonResult
。如果您希望API更加灵活,允许返回不同格式的内容,则ObjectResult
将允许进行内容协商。 - Nkosi