はい、コントローラーの属性を使用して達成できます。下のサンプルを参照してください:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class CustomJsonFormatter : ActionFilterAttribute
{
private readonly string formatName = string.Empty;
public CustomJsonFormatter(string _formatName)
{
formatName = _formatName;
}
public override void OnActionExecuted(ActionExecutedContext context)
{
if (context == null || context.Result == null)
{
return;
}
var settings = JsonSerializerSettingsProvider.CreateSerializerSettings();
if (formatName == "camel")
{
settings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
}
else
{
settings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
}
var formatter = new JsonOutputFormatter(settings, ArrayPool<Char>.Shared);
(context.Result as Microsoft.AspNetCore.Mvc.OkObjectResult).Formatters.Add(formatter);
}
}
とここにあなたのコントローラです:
[CustomJsonFormatter("camel")]
[Route("api/[controller]")]
public class ValuesController : Controller
{
// GET: api/values
[HttpGet]
public IActionResult Get()
{
Car car = new Car { Color = "red", Make = "Nissan" };
return Ok(car);
}
}
[asp.netコア1.0 Web APIを利用キャメルケース]の可能な重複(http://stackoverflow.com/questions/38139607/asp-net-core-1-0-web-api-use-camelcase) – Set
私はそうは思わない、コントローラごとではなく、API全体でCamelCaseを要求していると思う。 –
[JsonProperty ]タグを関連するモデルのすべての属性に追加します。理想的な解決策ではありません(私たちはたくさんのモデルを持っています)が、今のところ働いています。 –