Newtonsoft.net转换日期、时间数据时出现(/Date()/)的问题

来源:互联网 发布:淘宝网店策划案步骤 编辑:程序博客网 时间:2024/06/07 15:04

使用.Net控件Newtonsoft做对象或对象集合转Json时,默认Newtonsoft对时间做了一些处理,是使用 /Date(1237588418563+0000)/ 的格式输出,而且还带有时区的问题。

其实Newtonsoft是给了我们选择的,在做Json转换时需要加一些参数,以下是代码


    public class LogEntry    {        public string Details { get; set; }        public DateTime LogDate { get; set; }    }    public void WriteJsonDates()    {        LogEntry entry = new LogEntry        {            LogDate = new DateTime(2009, 2, 15, 0, 0, 0, DateTimeKind.Utc),            Details = "Application started."        };        string defaultJson = JsonConvert.SerializeObject(entry);//这是默认输出格式            // {"Details":"Application started.","LogDate":"\/Date(1234656000000)\/"}             string javascriptJson = JsonConvert.SerializeObject(entry, new JavaScriptDateTimeConverter());//JavaScript输出            // {"Details":"Application started.","LogDate":new Date(1234656000000)}        string isoJson = JsonConvert.SerializeObject(entry, new IsoDateTimeConverter());        // {"Details":"Application started.","LogDate":"2009-02-15T00:00:00Z"}        }