Web API serialize properties starting from lowercase letter

后端 未结 4 1165
故里飘歌
故里飘歌 2020-12-04 16:46

How can I configure serialization of my Web API to use camelCase (starting from lowercase letter) property names instead of PascalCase like it is i

相关标签:
4条回答
  • 2020-12-04 17:00

    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);
    });
    
    0 讨论(0)
  • 2020-12-04 17:01

    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);
    });
    
    0 讨论(0)
  • 2020-12-04 17:14

    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.

    0 讨论(0)
  • 2020-12-04 17:17

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

    0 讨论(0)
提交回复
热议问题