Search code examples
c#asp.net-coreasp.net-core-1.0

JSON properties now lower case on swap from ASP .Net Core 1.0.0-rc2-final to 1.0.0


I've just swapped our project from ASP .Net Core 1.0.0-rc2-final to 1.0.0. Our website and client have stopped working because of the capitalization of JSON properties. For example, this line of JavaScript now fails

for (var i = 0; i < collection.Items.length; i++){

because the controller now calls the array "items" instead of "Items". I have made no changes beyond installing the updated packages and editing the project.json file. I have not changed the C# model files which still capitalize their properties.

Why have the ASP.Net Core controllers started returning JSON with lower-cased properties? How do I go back to them honoring the case of the property names from the model?


Solution

  • MVC now serializes JSON with camel case names by default

    Use this code to avoid camel case names by default

      services.AddMvc()
            .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
    

    Source: https://github.com/aspnet/Announcements/issues/194