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出力が完全に変更されます。null許容プロパティをシリアル化できません。また、Json.Net(以下の回答を参照)をテストしたので、私の考えはそのWebAPIセットアップはどこかで何かをオーバーライドしているので、どこにあるかを知っておくと便利です)。