2017-06-16 46 views
5

在.NET Core的全局级别(所有API响应)中,如何配置Startup.cs以便在JSON响应中删除/忽略空字段?.NET Core:从API JSON响应中删除空字段

使用Newtonsoft.Json,您可以将以下属性的属性,但我想,以避免将它添加到每一个:

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 
public string FieldName { get; set; } 
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 
public string OtherName { get; set; } 

回答

8

在Startup.cs,可以附加JsonOptions到服务集合,并设置各种配置,包括删除空值,有:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc() 
      .AddJsonOptions(options => { 
       options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; 
    }); 
} 
0

这也可以每个控制器的情况下,做你不希望修改全局行为:

public IActionResult GetSomething() 
{ 
    var myObject = GetMyObject(); 
    return new JsonResult(myObject, new JsonSerializerSettings() 
    { 
     NullValueHandling = NullValueHandling.Ignore 
    }); 
};