1

我正在尝试反序列化我的 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对象。我猜这些只是存储为纪元的毫秒数,这应该很容易转换,但是我将如何为这两个日期字段实现自定义反序列化器而不影响其余字段,这些字段是为我完成的自动?

4

1 回答 1

4

您应该在 Bookmark 类中添加一个字段(就像 Daniel 所说的那样)。字段不影响 C# 中的序列化。

例子:

class Bookmark
{
    ...
    public DateTime ConvertedDateTime { get { return yourConversionMethod(dateAdded); } }
}
于 2012-08-12T14:11:31.010 回答