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

如何重写WebApi的OK结果JSON格式化规则以过滤null值字段

Web API 全局配置JSON序列化忽略null值的正确方案

配置失效原因

你之前的配置不生效,是因为ASP.NET Web API 自带的JSON格式化器默认不会使用JsonConvert.DefaultSettings的全局配置,所有序列化规则必须直接配置到JsonFormatter自身的SerializerSettings属性上才会生效。

正确配置代码

修改你的配置方法如下:

public static void AddJsonSerialisers(HttpConfiguration httpConfiguration)
{
    var jsonConverters = Converters.GetJsonConverters().ToList();
    var jsonFormatter = httpConfiguration.Formatters.JsonFormatter;

    // 注册自定义转换器
    jsonConverters.ForEach(jsonFormatter.SerializerSettings.Converters.Add);
    // 直接在格式化器配置中开启忽略null值,全局生效,包含嵌套子对象
    jsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
}

配置生效校验

  • 确保AddJsonSerialisers方法在Web API启动阶段被调用,可在Global.asax的Application_Start方法中执行,传入GlobalConfiguration.Configuration作为参数即可。
  • 该配置对所有返回Ok(实体对象)的接口全局生效,嵌套子对象内的null值字段也会自动被过滤不会出现在最终JSON中。
  • 如果你需要对单个属性单独配置null值处理规则,可在对应属性上添加[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]特性,优先级高于全局配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:39:02