Web API serialize properties starting from lowercase letter

Solution 1:

If you want to change serialization behavior in Newtonsoft.Json aka JSON.NET, you need to create your settings:

var jsonSerializer = JsonSerializer.Create(new JsonSerializerSettings 
{ 
    ContractResolver = new CamelCasePropertyNamesContractResolver(),
    NullValueHandling = NullValueHandling.Ignore // ignore null values
});

You can also pass these settings into JsonConvert.SerializeObject:

JsonConvert.SerializeObject(objectToSerialize, serializerSettings);

For ASP.NET MVC and Web API. In Global.asax:

protected void Application_Start()
{
   GlobalConfiguration.Configuration
      .Formatters
      .JsonFormatter
      .SerializerSettings
      .ContractResolver = new CamelCasePropertyNamesContractResolver();
}

Exclude null values:

GlobalConfiguration.Configuration
    .Formatters
    .JsonFormatter
    .SerializerSettings
    .NullValueHandling = NullValueHandling.Ignore;

Indicates that null values should not be included in resulting JSON.

ASP.NET Core

ASP.NET Core by default serializes values in camelCase format.

Solution 2:

For MVC 6.0.0-rc1-final

Edit Startup.cs, In the ConfigureServices(IserviceCollection), modify services.AddMvc();

services.AddMvc(options =>
{
    var formatter = new JsonOutputFormatter
    {
        SerializerSettings = {ContractResolver = new CamelCasePropertyNamesContractResolver()}
    };
    options.OutputFormatters.Insert(0, formatter);
});

Solution 3:

ASP.NET CORE 1.0.0 Json serializes have default camelCase. Referee this Announcement

Solution 4:

If you want to do this in the newer (vNext) C# 6.0, then you have to configure this through MvcOptions in the ConfigureServices method located in the Startup.cs class file.

services.AddMvc().Configure<MvcOptions>(options =>
{
    var jsonOutputFormatter = new JsonOutputFormatter();
    jsonOutputFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    jsonOutputFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore;

    options.OutputFormatters.Insert(0, jsonOutputFormatter);
});