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

.NET Core中配置Swagger显示含Null值响应节点的方法咨询

.NET Core配置Swagger展示含Null值的JSON节点

要让Swagger的JSON响应展示所有含Null值的节点,需要从JSON序列化配置和Swagger文档生成配置两方面入手:

1. 配置JSON序列化保留Null值

默认情况下,.NET Core的JSON序列化会自动忽略值为Null的属性,需要修改配置让其保留这些字段:

针对System.Text.Json(.NET 6+默认)

在Program.cs中修改AddControllers的配置:

builder.Services.AddControllers()
    .AddJsonOptions(options =>
    {
        // 从不忽略任何属性(包括值为Null的)
        options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.Never;
    });

针对Newtonsoft.Json(兼容旧项目)

如果项目使用Newtonsoft.Json替代默认序列化库,配置如下:

builder.Services.AddControllers()
    .AddNewtonsoftJson(options =>
    {
        // 明确指定包含Null值的属性
        options.SerializerSettings.NullValueHandling = NullValueHandling.Include;
    });

2. 配置Swagger Schema展示所有属性

确保Swagger的模型文档能正确显示所有属性(包括允许为Null的),在Program.cs的AddSwaggerGen中添加配置:

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "你的API名称", Version = "v1" });
    
    // 配置Schema生成器,确保所有属性都出现在文档中
    c.SchemaGeneratorOptions.IgnoreObsoleteProperties = false;
    c.UseAllOfToExtendReferenceSchemas();
});

验证效果

重启API后,在Swagger界面调用目标接口,就能看到响应中包含IsTest1、IsTest2等值为Null的节点了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:15:41