@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-ответ аналогично описанному в примере выше.