Как заставить netwtonsoft json serializer сериализовать свойство datetime для строки?
Я использую Newtonsoft Json
когда я сериализую свойство date time, я получаю ответ json как:
..."CreatedOn":"\/Date(1317303882420+0500)\/",...
Я хочу, чтобы он был в простой строке как
..."createdOn": "2011-05-05 14:03:07", ...
в то время как мое свойство класса - DateTime, как заставить его сериализовать его как строку, так как мы можем добавить атрибут для изменения имени свойства как
[JsonProperty("id")]
public int ProductID { get; set; }
Есть ли аналогичный способ принудительно использовать свойство DateTime для сериализации в строку??
Ответы
Ответ 1
Из сообщения, сделанного Джеймсом Ньютоном-Королем в StackOverflow, похоже, что вы можете это сделать.
string isoJson = JsonConvert.SerializeObject(this, new IsoDateTimeConverter());
// {"Details":"Application started.","LogDate":"2009-02-15T00:00:00Z"}
Ответ:
Разбор JSON DateTime из сериализатора JSON от Newtonsoft
Также есть документация на Json.NET и даты:
Сериализация дат в JSON
Ниже приведен пример использования свойства DateTimeFormat
для настройки вывода:
return JsonConvert.SerializeObject(this, Formatting.None, new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });