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

.NET 8 Minimal API如何全局配置System.Text.Json.JsonSerializer?

.NET 8 Minimal API全局配置System.Text.Json的有效方法

1. 配置Minimal API的请求绑定与响应序列化选项

针对Minimal API自动处理的请求模型绑定、响应序列化场景,直接在WebApplicationBuilder阶段通过Services.ConfigureHttpJsonOptions配置即可,注意代码要放在app.Build()之前执行:

var builder = WebApplication.CreateBuilder(args);

// 全局配置Json序列化规则
builder.Services.ConfigureHttpJsonOptions(options =>
{
    // 新增枚举转字符串转换器
    options.SerializerOptions.Converters.Add(new JsonStringEnumConverter());
    // 响应属性使用驼峰命名
    options.SerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
    // 反序列化时忽略属性大小写
    options.SerializerOptions.PropertyNameCaseInsensitive = true;
});

var app = builder.Build();

// 示例端点
app.MapGet("/api/status", () => new { Status = Status.Active, Message = "操作成功" })
   .WithName("GetStatus")
   .WithOpenApi();

app.Run();

enum Status { Active, Inactive }

2. 手动序列化/反序列化时复用全局配置

如果需要在代码中手动调用JsonSerializer.Serialize或Deserialize时复用全局配置,可将JsonSerializerOptions注册为单例服务,后续通过依赖注入直接使用:

注册全局选项

builder.Services.AddSingleton<JsonSerializerOptions>(_ =>
{
    var options = new JsonSerializerOptions();
    options.Converters.Add(new JsonStringEnumConverter());
    options.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
    options.PropertyNameCaseInsensitive = true;
    return options;
});

在端点中注入使用

app.MapPost("/api/parse-data", async (HttpContext context, JsonSerializerOptions options) =>
{
    var requestModel = await context.Request.ReadFromJsonAsync<MyRequestModel>(options);
    // 业务处理逻辑
    return Results.Ok(requestModel);
});

public class MyRequestModel
{
    public string UserName { get; set; }
    public UserRole Role { get; set; }
}

public enum UserRole { Admin, User }

注意事项

  • 务必保证ConfigureHttpJsonOptions的配置代码在var app = builder.Build();之前执行,否则配置不会被应用到Minimal API中。
  • 若同时混用Minimal API和MVC控制器,AddControllers().AddJsonOptions(...)的配置仍可生效,但Minimal API只会读取ConfigureHttpJsonOptions的设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:26:26