我如何配置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格式序列化值。