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

ASP.NET Core 6 Web API中Swagger的JsonIgnore特性未生效问题

问题根因

配置遗漏点在于Swashbuckle(ASP.NET Core默认集成的Swagger组件)默认仅遵循System.Text.Json的序列化规则生成文档Schema。你虽然通过AddNewtonsoftJson()将接口实际运行时的JSON序列化切换为Newtonsoft.Json实现,但Swagger生成层没有同步适配Newtonsoft.Json的特性规则,因此你标记在属性上的Newtonsoft.Json版本[JsonIgnore]不会被Swagger识别,对应属性自然不会被隐藏。

修复方案
  • 首先通过NuGet安装官方适配包Swashbuckle.AspNetCore.Newtonsoft,该包由Swashbuckle官方维护,用于让Swagger生成逻辑同步遵循Newtonsoft.Json的序列化配置。
  • 在Program.cs的服务注册段,在所有SwaggerGen相关配置完成后,追加如下配置行:
// 追加在所有Swagger相关服务配置之后
builder.Services.AddSwaggerGenNewtonsoftSupport();
  • 校验实体类上的[JsonIgnore]特性,确认其来自Newtonsoft.Json命名空间,和接口序列化使用的组件保持一致,不要混用System.Text.Json下的同名特性。

配置完成后重新启动项目,Swagger模型定义中标记了[JsonIgnore]的IsPasswordChanged、IsDeleted属性就会被自动隐藏,和接口实际返回的字段结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:06:11