Подтвердить что ты не робот

Asp.net core 1.0 web api использовать camelcase

На RC2 тот же код возвращает формат json с верблюжьим регистром. После выпуска Netcore 1.0 я начал новый проект, и тот же код возвращает JSON в нижнем регистре.

Перепробовал несколько решений, но ни одно из них не работало web-api-serialize-properties-начиная с нижнего регистра

4b9b3361

Ответ 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