asp.net core 1.0 web api使用camelcase

时间:2016-07-01 07:33:34

标签: c# json json.net asp.net-core-mvc asp.net-core-1.0

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

尝试了多种解决方案,但没有一种能够正常运行 web-api-serialize-properties-starting-from-lowercase-letter

3 个答案:

答案 0 :(得分:99)

services
    .AddMvc()
    .AddJsonOptions(options =>
    {
        options.SerializerSettings.ContractResolver
            = new Newtonsoft.Json.Serialization.DefaultContractResolver();
    });

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

答案 1 :(得分:34)

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

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

答案 2 :(得分:0)

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

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

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

return new JsonResult(myObject, jsonSerializerSettings);

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