Asp.net core 1.0 web api использовать camelcase
На RC2
тот же код возвращает формат json с верблюжьим регистром. После выпуска Netcore 1.0 я начал новый проект, и тот же код возвращает JSON в нижнем регистре.
![]()
Перепробовал несколько решений, но ни одно из них не работало web-api-serialize-properties-начиная с нижнего регистра
Ответы
Ответ 1
services
.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.ContractResolver
= new Newtonsoft.Json.Serialization.DefaultContractResolver();
});
Это сохраняет имя объекта JSON так же, как и свойство .NET class.
Ответ 2
Вы можете настроить поведение JSON таким образом:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver();
});
}
Ответ 3
Вы также можете сделать это на уровне отдельного сериализатора, а не на глобальном уровне.
Например, чтобы вернуть объект как JSON для метода действия контроллера, вы можете сделать это:
var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new DefaultContractResolver() };
return new JsonResult(myObject, jsonSerializerSettings);
И результирующая строка JSON будет в ожидаемом PascalCase, чтобы соответствовать именам классов/свойств .NET