2012-02-18 27 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