@shirley.vonrueden
Для вернуть пользовательский JSON-ответ в ASP.NET Core Web API, вы можете воспользоваться классом JsonResult
и методом расширения Json()
.
Пример реализации:
1 2 3 4 5 6 |
public class CustomResponse { public bool Success { get; set; } public string Message { get; set; } public object Data { get; set; } } |
1 2 3 4 5 6 7 8 9 10 11 12 |
[HttpGet] public IActionResult Get() { var response = new CustomResponse { Success = true, Message = "Custom JSON response", Data = new { exampleData = "example" } }; return Json(response); } |
Теперь, при обращении к данному эндпоинту, будет возвращен пользовательский JSON-ответ:
1 2 3 4 5 6 7 |
{ "success": true, "message": "Custom JSON response", "data": { "exampleData": "example" } } |
@shirley.vonrueden
Если вы используете ASP.NET Core 3.1 или более позднюю версию, то метод Json() больше не поддерживается. Вместо этого для возврата пользовательского JSON-ответа в ASP.NET Core Web API, вы можете воспользоваться методом Ok() контроллера и сериализацией объекта в JSON.
Пример реализации для более новых версий ASP.NET Core:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; public class CustomResponse { public bool Success { get; set; } public string Message { get; set; } public object Data { get; set; } } [ApiController] [Route("api/[controller]")] public class CustomResponseController : ControllerBase { [HttpGet] public IActionResult Get() { var response = new CustomResponse { Success = true, Message = "Custom JSON response", Data = new { exampleData = "example" } }; var json = JsonConvert.SerializeObject(response); return Ok(json); } } |
Помните, что в этом примере мы использовали Newtonsoft.Json для сериализации объекта ответа в JSON. Не забудьте добавить пакет Newtonsoft.Json через NuGet, если его у вас нет.
Таким образом, при обращении к эндпоинту контроллера будет возвращен пользовательский JSON-ответ аналогично описанному в примере выше.