WCF RESTful传递JSON日期时间总是空的

本文关键字:时间 日期 RESTful 传递 JSON WCF | 更新日期: 2023-09-27 18:10:24

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

这是我的数据合同

   [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(请忽略"酸",只有"目的地"answers"起源")

{
    "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种datetime样式都是代码隐藏的最小值(只有datetime,两个"airport"字段都有正常值)

WCF RESTful传递JSON日期时间总是空的

DateTime在Json中没有很好地定义,尽管"eddt"值看起来应该是一个应该被普通。net Json序列化器解析的值。

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