You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止ASP.NET Core 7 WebAPI Swagger将参数类属性转为小写

解决ASP.NET Core 7 Web API中Swagger将类参数属性转为小写的问题

出现这个问题的核心原因是:ASP.NET Core默认使用的System.Text.Json序列化器采用了驼峰命名策略(小写开头),Swagger会继承这个配置来生成API文档里的参数字段名。以下是几种可行的解决方式:

1. 修改全局JSON序列化配置

如果希望API的请求/响应序列化和Swagger文档都保留类属性的原始命名,在Program.cs中调整控制器的JSON选项:

builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        // 取消驼峰命名策略,保留属性原始名称
        options.JsonSerializerOptions.PropertyNamingPolicy = null;
    });

2. 单独配置Swagger的Schema生成规则

如果只想让Swagger显示原始属性名,不想影响API实际的JSON序列化行为,可以单独修改Swagger的生成配置:

builder.Services.AddSwaggerGen(options =>
{
    // 让Swagger生成Schema时使用属性原始名称
    options.SchemaGeneratorOptions.PropertyNamingPolicy = null;
});

3. 针对特定类/属性单独控制

如果仅需修改个别类或属性的显示名称,可以给目标属性添加[JsonPropertyName]特性,显式指定名称:

public class UserRequest
{
    [JsonPropertyName("UserName")]
    public string UserName { get; set; }

    [JsonPropertyName("EmailAddress")]
    public string EmailAddress { get; set; }
}

选择哪种方式取决于你的实际需求:全局配置适合统一规范,单独配置Swagger适合API序列化和文档显示分离的场景,特性标注适合局部调整。

内容的提问来源于stack exchange,提问作者kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 06:12:03