小编典典

从Newtonsoft的JSON序列化器解析JSON DateTime

json

我已经使用Newtonsoft的JSON序列化器序列化了一个对象,而DateTime的实现方式是:

/Date(1237588418563+0000)/

当我在其上$ .evalJSON()时,它是一个对象,但在它上找不到任何正常的Date方法,例如toUTCString。

有什么办法可以解决吗?


阅读 315

收藏
2020-07-27

共1个答案

小编典典

使用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中序列化日期

2020-07-27