我正在尝试deserialize我的Firefox书签,所以我可以用它们做事。令人惊讶的是,这完美无缺:
class Bookmark
{
public string title;
public int? id;
public int? parent;
public string dateAdded;
public string lastModified;
public string type;
public string root;
public string uri;
public List<Bookmark> children;
}
class Program
{
static void Main(string[] args)
{
var jss = new JavaScriptSerializer();
var json = File.ReadAllText(@"T:\bookmarks-2012-08-08.json");
var root = jss.Deserialize<Bookmark>(json);
}
}
我可以检查“根”对象,一切都很好。但是,日期看起来像“1260492675000000”。我想将它们转换为DateTime
个对象。我猜这些只是存储为epoch的毫秒数,should be easy enough to convert,但我如何为这两个日期字段实现一个自定义反序列化器,而不会影响其余的字段,这是我自动完成的?
答案 0 :(得分:4)
您应该在Bookmark类中添加一个字段(就像Daniel所说的那样)。字段不会影响C#中的序列化。
示例:
class Bookmark
{
...
public DateTime ConvertedDateTime { get { return yourConversionMethod(dateAdded); } }
}