我正在尝试获取WebAPI 2.2服务的JSONFormatter以从序列化JSON中删除NULL值字段。尝试在网络上找到的解决方案很少,但响应仍然包含NULL值。
首先我尝试了:
config.Formatters.JsonFormatter.SerializerSettings
= new Newtonsoft.Json.JsonSerializerSettings
{
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
};
然后我尝试完全替换JSONFormatter。
var jsonformatter = new JsonMediaTypeFormatter
{
SerializerSettings =
{
DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore,
NullValueHandling = NullValueHandling.Ignore
}
};
config.Formatters.RemoveAt(0);
config.Formatters.Insert(0, jsonformatter);
这些方法都没有奏效。我仍然在生成的JSON响应中看到Null值属性。
这些是在WebApiConfig.Register(config)
方法的开头完成的。
API返回的类是从EF生成的,采用以下格式:
public partial class Entity
{
public int Id { get; set; }
public string Name { get; set; }
public string FirmType { get; set; }
public Nullable<int> FirmTypeId { get; set; }
public string WebSite { get; set; }
public string Description { get; set; }
public string Address { get; set; }
public string HQCity { get; set; }
public string State { get; set; }
public string Address1 { get; set; }
public string Zip { get; set; }
public string Phone { get; set; }
public Nullable<decimal> NetPatientRev { get; set; }
public Nullable<int> NetworkId { get; set; }
public Nullable<int> NetworkParentId { get; set; }
}
Controller方法:
[Authorize]
[EnableCors("*","*","*")]
public class HospitalsController : ODataController
[EnableQuery]
public IQueryable<Entity> GetEntities()
{
return db.GetEntities(currentUserId);
}
}
如何解决这个问题的任何帮助将不胜感激。