我已经使用Newtonsoft的JSON序列化器序列化了一个对象,而DateTime的实现方式是:
/Date(1237588418563+0000)/
当我在其上$ .evalJSON()时,它是一个对象,但在它上找不到任何正常的Date方法,例如toUTCString。
有什么办法可以解决吗?
使用Json.NET附带的JsonConverters之一处理日期以获得更好的格式。JavaScriptDateTimeConverter将自动为您提供一个JavaScript日期。
public class LogEntry { public string Details { get; set; } public DateTime LogDate { get; set; } } [Test] 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()); // {"Details":"Application started.","LogDate":new Date(1234656000000)} string isoJson = JsonConvert.SerializeObject(entry, new IsoDateTimeConverter()); // {"Details":"Application started.","LogDate":"2009-02-15T00:00:00Z"} }
文档: 使用Json.NET在JSON中序列化日期