using Newtonsoft.Json;
namespace FAL.WebAPI2012.Controllers
{
public class Person
{
public int Id {get;set;}
public string FirstName {get;set;}
public string LastName {get;set;}
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Include,
NullValueHandling = NullValueHandling.Include)]
public DateTime? Dob { get; set; }
}
public class TestNullsController : ApiController
{
// GET api/<controller>
public Person Get()
{
Person myPerson = new Person() {
Dob = null, FirstName = "Adrian", Id=1, LastName="Bobby"
};
return myPerson;
}
}
}
如您所见,我的 Dob 字段设置为 null 但结果如下
{ "Id":1, "FirstName":"Adrian", "LastName":"Bobby" }
并且Dob
没有序列化为我需要的 null !
(我已经测试过JsonProperty
设置其他属性,如 name 并且它完美地改变了 JSON 输出。我只是无法序列化可空属性。另外,我已经测试了 Json.Net(见下面的答案),所以我的想法是该 web api 设置在某处覆盖了某些东西,很高兴知道在哪里)。