如何在使用Json.Net从流反序列化时设置自定义日期格式



我想从JSON流中解析DateTime

日期的模式为YYYY/MM/DD

如何在序列化程序的设置上或使用DateParseHandling设置此自定义格式?

只需将JsonSerializer上的DateFormatString设置为所需的格式。Json.Net使用与.Net框架相同的格式说明符。

这里有一个例子:

class Program
{
    static void Main(string[] args)
    {
        string json = @"{ ""date"" : ""2014/10/07"" }";
        using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
        using (StreamReader sr = new StreamReader(ms))
        using (JsonTextReader jtr = new JsonTextReader(sr))
        {
            JsonSerializer ser = new JsonSerializer();
            ser.DateFormatString = "yyyy/MM/dd";
            Foo foo = ser.Deserialize<Foo>(jtr);
            Console.WriteLine(foo.Date.ToLongDateString());
        }
    }
}
class Foo
{
    public DateTime Date { get; set; }
}

示例输出:

Tuesday, October 07, 2014

相关内容

  • 没有找到相关文章

最新更新