asp.net core 1.0 web api使用camelcase

问题描述 投票:48回答:3

RC2上,相同的代码返回json格式与camel case。在netcore 1.0发布之后,我启动了新项目,同样的代码以小写形式返回json。

尝试了多种解决方案,但他们都没有工作web-api-serialize-properties-starting-from-lowercase-letter

c# json json.net asp.net-core-mvc asp.net-core-1.0
3个回答
101
投票
services
    .AddMvc()
    .AddJsonOptions(options =>
    {
        options.SerializerSettings.ContractResolver
            = new Newtonsoft.Json.Serialization.DefaultContractResolver();
    });

这使JSON对象的名称与.NET类属性相同。


33
投票

您可以通过以下方式配置JSON行为:

public void ConfigureServices(IServiceCollection services)  
  {
      services.AddMvc()
                  .AddJsonOptions(options =>
                  {
                      options.SerializerSettings.ContractResolver =
                          new CamelCasePropertyNamesContractResolver();
                  });
  }

0
投票

您也可以在单个序列化程序级别执行此操作,而不是在全局级别执行此操作。

例如,要在控制器操作方法上将对象作为JSON返回,您可以执行以下操作:

var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new DefaultContractResolver() };

return new JsonResult(myObject, jsonSerializerSettings);

生成的JSON字符串将位于预期的PascalCase中,以匹配.NET类/属性名称

© www.soinside.com 2019 - 2024. All rights reserved.