Как настроить сериализацию моего веб-API для использования имен свойств camelCase
(начиная с строчной буквы) вместо PascalCase
, как это показано на С#.
Могу ли я сделать это глобально для всего проекта?
Как настроить сериализацию моего веб-API для использования имен свойств camelCase
(начиная с строчной буквы) вместо PascalCase
, как это показано на С#.
Могу ли я сделать это глобально для всего проекта?
Если вы хотите изменить поведение сериализации в Newtonsoft.Json aka JSON.NET, вам нужно создать свои настройки:
var jsonSerializer = JsonSerializer.Create(new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
NullValueHandling = NullValueHandling.Ignore // ignore null values
});
Вы также можете передать эти настройки в JsonConvert.SerializeObject
:
JsonConvert.SerializeObject(objectToSerialize, serializerSettings);
protected void Application_Start()
{
GlobalConfiguration.Configuration
.Formatters
.JsonFormatter
.SerializerSettings
.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
Исключить нулевые значения:
GlobalConfiguration.Configuration
.Formatters
.JsonFormatter
.SerializerSettings
.NullValueHandling = NullValueHandling.Ignore;
Указывает, что нулевые значения не должны включаться в результирующий JSON.
Ядро ASP.NET по умолчанию сериализует значения в формате camelCase.
Для MVC 6.0.0-rc1-final
Изменить Startup.cs, В ConfigureServices(IserviceCollection)
изменить services.AddMvc();
services.AddMvc(options =>
{
var formatter = new JsonOutputFormatter
{
SerializerSettings = {ContractResolver = new CamelCasePropertyNamesContractResolver()}
};
options.OutputFormatters.Insert(0, formatter);
});
ASP.NET CORE 1.0.0 Серии Json имеют стандартный camelCase по умолчанию. Судья этого объявления
Если вы хотите сделать это в новом (vNext) С# 6.0, вам нужно настроить его с помощью MvcOptions
в методе ConfigureServices
, расположенном в файле класса Startup.cs
.
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);
});