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

ASP.NET Core 7 Web API如何序列化为PascalCase(帕斯卡命名)?

ASP.NET Core Web API 返回JSON保持PascalCase命名的解决方案

默认情况下,.NET 7的ASP.NET Core Web API会将模型的PascalCase属性自动序列化为camelCase的JSON输出。要让返回的JSON属性与.NET类定义完全一致,可按以下步骤配置:

1. 配置控制器的JSON序列化选项

模板生成的项目以控制器API为主,需在添加控制器服务时覆盖默认序列化策略:

builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        // 取消自动命名转换,保留类中定义的PascalCase
        options.JsonSerializerOptions.PropertyNamingPolicy = null;
    });

2. (可选)适配最小API场景

如果项目同时使用了最小API,补充全局HttpJsonOptions配置确保覆盖所有场景:

builder.Services.ConfigureHttpJsonOptions(options =>
{
    options.SerializerOptions.PropertyNamingPolicy = null;
});

3. 同步Swagger文档的示例显示

要让Swagger里的JSON示例也显示为PascalCase,需配置Swagger的Schema生成规则:

builder.Services.AddSwaggerGen(options =>
{
    options.SchemaGeneratorOptions.PropertyNamingPolicy = null;
});

验证效果

配置完成后重启API,调用接口返回的JSON将与模型命名一致:

[
  {
    "Date": "2023-11-28",
    "TemperatureC": 53,
    "TemperatureF": 127,
    "Summary": "Hot"
  }
]

旧配置失效的原因

你之前仅配置了HttpJsonOptions,但控制器API的序列化选项是独立管理的,必须通过AddControllers().AddJsonOptions()才能覆盖默认的camelCase策略,因此单独配置HttpJsonOptions无法影响控制器的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:08:22