我需要从服务器解析JSON数据并制作对象状态列表。DataContract和自定义设置/从字符串设置DateTime
我使用DataContract为了使json字典字段和类属性之间的关联,但是我有一个问题:其中一个字段包含字符串中的日期(类似于“2011-01-01 15 :00 UTC“);我想把这里面的DateTime属性。
如何将此字符串转换为日期时间并使用DataContract自动将其传递给属性?那可能吗?
我需要从服务器解析JSON数据并制作对象状态列表。DataContract和自定义设置/从字符串设置DateTime
我使用DataContract为了使json字典字段和类属性之间的关联,但是我有一个问题:其中一个字段包含字符串中的日期(类似于“2011-01-01 15 :00 UTC“);我想把这里面的DateTime属性。
如何将此字符串转换为日期时间并使用DataContract自动将其传递给属性?那可能吗?
你可以使用属性为宗旨:
[DataMember(Name="Foo")]
public string FormattedFoo {
get { return /* apply some custom formatting to 'Foo' */; }
set { Foo = /* apply some custom parsing to 'value' */; }
}
public DateTime Foo {get;set;}
把DataMember
属性的领域,而不是财产和使用的setter /吸气进行转换:
const string DATE_TIME_FORMAT = "<your format>";
[DataMember]
string myDate;
public DateTime MyDate {
get
{
return DateTime.ParseExact(myDate, DATE_TIME_FORMAT, CultureInfo.CurrentCulture);
}
set
{
myDate = value.ToString(DATE_TIME_FORMAT);
}
}
如果您想要使用Json.Net [这里](http://stackoverflow.com/questions/8639315/how-to-create-a-json-net-date-to-string-custom-converter)是一个答案。 – 2012-02-29 13:45:03
事实上,我选择DataContract是因为它允许我从JSON字典轻松转换为运行时类。 JSON.net有什么区别? – danielemm 2012-02-29 16:12:08
您对序列化/反序列化过程有更多的控制权。在我之前的评论中看到ex的链接。你也可以很容易地使用'dynamic',因为它可以将对象反序列化为字典。这里有一些工作示例。 http://pastebin.com/JEYfgL3a。最好看看[它的主页](http://json.codeplex.com/) – 2012-02-29 19:21:59