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

ASP.NET Core 6 Minimal API如何默认返回驼峰命名JSON响应?

解决ASP.NET Core JSON响应默认驼峰命名问题

问题原因

你当前配置的JsonOptions仅对**最小API(Minimal API)**生效,而你的项目通过MapControllers()使用MVC控制器,需要配置MVC专属的JSON序列化选项才能生效。

解决方案

方法一:针对MVC控制器配置序列化选项

替换原有配置代码,使用MVC的AddJsonOptions来全局设置驼峰命名:

builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
        // 若无需忽略请求参数的大小写,可保留或移除该行
        options.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
    });

// 后续代码保持不变
builder.Build();

app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();
app.Run();

方法二:同时覆盖Minimal API和MVC的序列化规则

如果项目同时包含Minimal API和MVC控制器,可以同时配置两类选项:

// 配置Minimal API的JsonOptions
builder.Services.Configure<Microsoft.AspNetCore.Http.Json.JsonOptions>(options =>
{
    options.SerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
    options.SerializerOptions.PropertyNameCaseInsensitive = false;
});

// 配置MVC控制器的JsonOptions
builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
        options.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
    });

关于[JsonPropertyName]不生效的说明

配置MVC的序列化选项后,[JsonPropertyName]特性会正常覆盖全局命名策略。之前失效是因为控制器未使用正确的序列化配置,调整后该特性即可按预期工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:52:45