我已经使用 Newtonsoft 的 JSON 序列化器序列化了一个对象,并且 DateTime 已经通过:
/Date(1237588418563+0000)/
当我对其进行 $.evalJSON() 时,它是一个对象,但我在其上找不到任何正常的 Date 方法,例如 toUTCString。
任何想法我可以用这个做什么?
最佳答案
使用 Json.NET 附带的其中一个 JsonConverter 来处理日期以获得更好的格式。 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 - 从 Newtonsoft 的 JSON 序列化器解析 JSON 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/668488/