Подтвердить что ты не робот

Как заставить 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 для сериализации в строку??

4b9b3361

Ответ 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" });