【发布时间】:2015-10-17 09:50:38
【问题描述】:
考虑下面给出的 json 字符串:
{
"items":
[
{
...,
"view_count":4,
"answer_count":0,
"score":0,
"last_activity_date":1445071150
}
],
...
}
有没有办法使用System.Runtime.Serialization.DataContractAttribute 和System.Runtime.Serialization.Json.DataContractJsonSerializer 将last_activity_date 反序列化为另一种类型的实例?
例如:1445071150 -> Date 其中Date 是
[System.Runtime.Serialization.DataContract]
public class Date
{
[System.Runtime.Serialization.IgnoreDataMember]
public long ElapsedSeconds { get; set; }
[System.Runtime.Serialization.IgnoreDataMember]
public DateTime Date { get { ... } set; }
public Date(long seconds)
{
ElapsedSeconds = seconds;
Date = ...;
}
public static implicit operator Date(long seconds)
{
return new Date(seconds);
}
// Other members ...
}
【问题讨论】:
-
我认为你应该实现
IContractResolver: newtonsoft.com/json/help/html/contractresolver.htm 并使用自己的Converter。
标签: c# json deserialization datacontract