使用.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"}
}

本文介绍了在使用Newtonsoft.Json进行.NET对象到Json转换时遇到的日期时间处理问题,特别是关于('/Date()/'格式)的处理。通过代码示例展示了如何在转换时自定义日期格式,避免这种特殊格式的出现。
677

被折叠的 条评论
为什么被折叠?



