c# - Web API 从小写字母开始序列化属性

标签 c# .net asp.net-mvc asp.net-web-api json.net

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

我可以为整个项目在全局范围内进行吗?

最佳答案

如果您想更改 Newtonsoft.Json aka JSON.NET 中的序列化行为,您需要创建您的设置:

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 以驼峰命名法序列化值。

关于c# - Web API 从小写字母开始序列化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22130431/

相关文章:

c# - Windows Azure 移动服务

c# - 查询不更新数据库

c# - 如何使用 WPF 的 UI 自动化将右键单击事件发送到 AutomationElement?

java - 如何使用 AndroidJavaObject.Call 将参数传递给 Java?

c# - 来自 NetworkCredentials 的用户权限掩码

c# - System.PlatformNotSupportedException 在运行时编译 C# 代码 .NET Core

c# - Polly Framework VS Microsoft 瞬时故障处理

没有显式登录的 ASP.NET 登录重定向

css - MVC、CSS 和 302 身份验证 hell

c# - 如何在 VS 2015 中自定义 ASP.NET MVC 5 脚手架?