我如何配置Web API的序列化以使用camelCase(从小写字母开始)属性名称,而不是C#中的PascalCase

我可以在整个项目中在全局范围内这样做吗?

最佳答案

如果要更改Newtonsoft.Json或JSON.NET中的序列化行为,则需要创 build 置:

var jsonSerializer = JsonSerializer.Create(new JsonSerializerSettings
{
    ContractResolver = new CamelCasePropertyNamesContractResolver(),
    NullValueHandling = NullValueHandling.Ignore // ignore null values
});

您也可以将这些设置传递给JsonConvert.SerializeObject:
JsonConvert.SerializeObject(objectToSerialize, serializerSettings);

对于ASP.NET MVC和Web API。在Global.asax中:
protected void Application_Start()
{
   GlobalConfiguration.Configuration
      .Formatters
      .JsonFormatter
      .SerializerSettings
      .ContractResolver = new CamelCasePropertyNamesContractResolver();
}

排除空值:
GlobalConfiguration.Configuration
    .Formatters
    .JsonFormatter
    .SerializerSettings
    .NullValueHandling = NullValueHandling.Ignore;

指示结果值JSON中不应包含空值。

ASP.NET核心

默认情况下,ASP.NET Core以camelCase格式序列化值。

10-02 22:18