2012-02-18 28 views
0

我在Rest服務器中創建了一個get方法,它將以json格式返回數據。 在JSON對象中包含一個日期時間字段,如果我傳遞這個日期時間字段爲空,那麼它將通過一個異常。在休息API時,reutrn datetime null以json格式創建錯誤

這是代碼我有,似乎不工作

public class meta 
{ 
    private System.DateTime createdField; 
    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaFo‌​rm.Unqualified)] 
    public System.DateTime created { 
     get { return this.createdField; } 
     set { this.createdField = value; } 
    } 
    } 
+0

添加更多細節例如你的示例代碼,例外等 – bjan 2012-02-18 06:05:59

+0

你必須使這個字段'Nullable',接受'空'的 – 2012-02-18 06:16:57

回答

2

作出這樣DateTimeNullable,它應該工作。

您也可以嘗試在該屬性上放置[JsonIgnore]

class Program 
    { 
     static void Main(string[] args) 
     { 
      var mo = new MyObject { integerValue = null, dateTimeValue = null }; 
      var ser = Newtonsoft.Json.JsonConvert.SerializeObject(mo); 
      var deser = Newtonsoft.Json.JsonConvert.DeserializeObject(ser, typeof(MyObject)); 
     } 
    } 

    public class MyObject 
    { 
     public int? integerValue { get; set; } 
     public DateTime? dateTimeValue { get; set; }   
    } 
+0

嗨感謝您的答覆。但你能建議我如何設置下面的對象屬性爲空。 public class meta { private System.DateTime createdField; [System.Xml.Serialization.XmlElementAttribute(表格= System.Xml.Schema.XmlSchemaForm.Unqualified)] 公共的System.DateTime創建{ 獲得{ 返回this.createdField; } set { this.createdField = value; } } } – user1217665 2012-02-18 06:26:51

+0

類節目 { 靜態無效的主要(字符串[]參數) { 變種MO =新的MyObject {integerValue = NULL,dateTimeValue = NULL}; var ser = Newtonsoft.Json.JsonConvert.SerializeObject(mo); var deser = Newtonsoft.Json.JsonConvert.DeserializeObject(ser,typeof(MyObject)); } } public class MyObject { public int? integerValue {get;組; } public DateTime? dateTimeValue {get;組; } } – 2012-02-18 06:30:28

+1

@ user1217665,您應該將這些詳細信息添加到您的問題中以改進它,其他用戶也可以爲您提供幫助。 – 2012-02-18 06:32:42