Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

return JSON as is (PascalCase) from one Action

in asp.net core 3 the returned json will get automatically transformed to camelCase, and I know how to turn this off globally but how do I turn this off for one single action ? I know it was supposed to be something like

return Json(myObj, cfgHere); 

but can't find this example anywhere

like image 441
Omu Avatar asked Nov 02 '25 06:11

Omu


1 Answers

The Json method is part of Controller, but isn't part of ControllerBase. If you're using ControllerBase, which is typical for controllers that don't use views, you can new up a JsonResult and return that:

return new JsonResult(myObj, cfgHere);

This is all the Controller.Json method really does, as can be seen in the source:

public virtual JsonResult Json(object data, object serializerSettings)
{
    return new JsonResult(data, serializerSettings);
}

serializerSettings can be either JsonSerializerOptions or JsonSerializerSettings (if you're using Json.NET). Here's an example that assumes you're using the default, System.Text.Json-based formatters:

return new JsonResult(myObj, new JsonSerializerOptions());

By creating an instance of JsonSerializerOptions without setting any properties, the PropertyNamingPolicy is left as the default policy, which leaves the property names as-is.

If you'd like to use a more declarative approach, which supports content-negotiation, see: Change the JSON serialization settings of a single ASP.NET Core controller.

like image 161
Kirk Larkin Avatar answered Nov 04 '25 19:11

Kirk Larkin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!