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

如何修改Swagger生成的JSON Schema使其匹配C#类字段名

解决Swagger Schema字段名与C#类名称不匹配的问题

默认情况下,ASP.NET Web API中Swagger生成的JSON Schema会将C#类的PascalCase字段转为小写驼峰格式。要让Schema中的字段名与C#代码里的名称完全一致,可通过以下配置实现:

方法1:全局统一配置JSON序列化规则

如果希望API的所有JSON输出(包括接口返回和Swagger Schema)都保留C#类的原字段名,在Program.cs中添加如下配置:

builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        // 取消自动命名策略,保持字段名与C#类定义一致
        options.JsonSerializerOptions.PropertyNamingPolicy = null;
    });

方法2:仅针对Swagger Schema单独配置

如果只想让Swagger Schema保留原字段名,不影响API接口的JSON返回格式,可单独配置Swashbuckle的Schema生成规则:

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "你的API名称", Version = "v1" });
    
    // 关闭参数的驼峰命名转换
    c.DescribeAllParametersInCamelCase(false);
    // 取消Schema字段的自动命名策略,保留C#原字段名
    c.SchemaGeneratorOptions.PropertyNamingPolicy = null;
});

配置完成后重启项目,Swagger生成的Schema中,WeatherForecast类的字段会显示为Date、TemperatureC、TemperatureF、Summary,与C#代码中的定义完全匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:18:30