【发布时间】:2012-07-15 15:45:06
【问题描述】:
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 正在设置其他属性,例如名称,它完美地改变了 JSON 输出。我只是无法让可空属性被序列化。
另外,我已经测试了 Json.Net(请参阅下面的答案),所以我的想法是 web api 设置在某处覆盖了某些东西,很高兴知道在哪里)。
【问题讨论】:
标签: c# .net serialization json.net asp.net-web-api