В чем разница между ObjectResult и JsonResult

В пространстве имен Microsoft.AspNetCore.Mvc есть два класса:

ObjectResult и JsonResult.

Оба конвертируют возвращенный объект в формате JSON.

В чем разница между ними и какова цель их использования?

Ответ 1

JsonResult - это IActionResult, который форматирует данный объект как JSON

ObjectResult - это IActionResult, у которого есть согласование содержимого.

Внутри своего ExecuteResultAsync, ответственного за запись в поток ответов, структура будет проходить через доступные форматы и выбирать соответствующий.

Логика выбора форматирования аналогична логике ASP.NET Web API и основана на следующем порядке приоритета:

  • Принять заголовок
  • Заголовок Content-Type
  • выбор по типу соответствия

Класс OkObjectResult

An Microsoft.AspNetCore.Mvc.ObjectResult, который при выполнении выполняет согласование контента, форматирует тело объекта и Microsoft.AspNetCore.Http.StatusCodes.Status200OK ответ, если согласование и форматирование.

Литература: