2014-06-26 31 views
1

我使用.NET WCF + RESTful開發服務和WizTools.org RESTClient進行測試。 我有一個關於從客戶端接收JSON日期時間的問題。它們始終是DateTime.MinValue。WCF RESTful傳遞JSON日期時間始終爲空

這裏是我的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種日期時間風格以上是代碼隱藏的最小值(只是日期時間,兩個「機場」字段都具有正常值)。

+0

DateTime是一個值類型。不能爲null。 –

+0

謝謝@ L.B。正如你所說,他們不是零。全部是01-01-01T00:00:00。 – dokibi

回答

0

雖然「eddt」值看起來像應該可以通過常見的.Net Json序列化程序進行分析的值,但Json並未很好地定義DateTime。

我的建議是使用字符串屬性,並添加額外的GetOddt()等函數,它將字符串值解析爲DateTime值;如果需要,還可以添加SetOddt()等函數,並且不要忘記更新相應的字符串值!