WCF RESTful传递JSON日期时间始终为null

时间:2014-06-26 09:23:32

标签: c# json wcf rest datetime

我使用.NET WCF + RESTful来开发服务,使用WizTools.org RESTClient进行测试。 我有一个关于从客户端接收JSON日期时间的问题。它们总是DateTime.MinValue。

这是我的DataContract

   [DataContract(Name = "origin")]
        public class OriginObject
        {
            [DataMember(Name = "airport")]
            public string Airport { get; set; }

            [DataMember(Name = "oddt")]
            public DateTime Oddt { get; set; }

            [DataMember(Name = "eddt")]
            public DateTime Eddt { get; set; }
        }

        [DataContract(Name = "destination")]
        public class DestinationObject
        {
            [DataMember(Name = "airport")]
            public string Airport { get; set; }

            [DataMember(Name = "odat")]
            public DateTime Odat { get; set; }

            [DataMember(Name = "edat")]
            public DateTime Edat { get; set; }
        }

这是我的测试JSON(请忽略“酸”,只是“目的地”和“原点”)

{
    "acid" : "AAA1",
    "destination" : {
        "airport" : "VVVV",
        "eddt" : "2013-03-05T20:20:31.000Z",
        "oddt" : "/Date(1362489941)/"
    },
    "flightPlanState" : "ACTIVE",
    "origin" : {
        "airport" : "XXXX",
        "edat" : "\/Date(1362499081)\/",
        "odat" : "1362498721"
    }
}

以上所有4个日期时间样式都是代码隐藏中的最小值(仅限日期时间,两个“机场”字段都具有正常值)。

1 个答案:

答案 0 :(得分:0)

日期时间与Json没有很好的定义,尽管" eddt" value看起来像一个值,它应该由一个普通的.Net Json序列化程序解析。

我的建议是使用字符串属性,并添加额外的GetOddt()等函数,将字符串值解析为DateTime值;如果需要,还要添加SetOddt()等函数,不要忘记更新相应的字符串值!