Настройка пользовательских дат WebApi Json.NET

Я использую глобальное kernel ​​настроенное приложение MVC4 для использования сериализатора JSON.NET. Я знаю, что у меня есть выбор использования стандартных дат ISO или старого формата даты Microsoft при сериализации дат.

Но как я могу вывести свою собственную строку формата даты в формате DateTime, например: «dd / MM / yyyy hh: mm».

Я мог бы сделать это в MVC3 при подключении Json.NET в качестве сериализатора по умолчанию, но, похоже, не работает в MVC4.

До сих пор в приложении application_start я сделал:

var settings = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings; JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Formatting.Indented, DateTimeZoneHandling = DateTimeZoneHandling.Utc, }; jSettings.Converters.Add(new MyDateTimeConvertor() ); settings = jSettings; 

и пользовательский конвертер, который я пытался внедрить, выглядит так:

  public class MyDateTimeConvertor : DateTimeConverterBase { public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { return DateTime.Parse(reader.Value.ToString()); } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { writer.WriteValue(((DateTime)value).ToString("dd/MM/yyyy hh:mm")); } } 

Anyhelp будет оценен 🙂

Измените настройки, настроенные таким образом:

 JsonMediaTypeFormatter jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter; JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings() { Formatting = Formatting.Indented, DateTimeZoneHandling = DateTimeZoneHandling.Utc }; jSettings.Converters.Add(new MyDateTimeConvertor()); jsonFormatter.SerializerSettings = jSettings; 

В вашем коде вы просто меняете значение локальной переменной.

Спасибо, я схожу с ума, это очень сработало для меня, вставьте это в Global.asax.cs

 JsonMediaTypeFormatter jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter; JsonSerializerSettings jSettings =... 

создать class MyDateTimeConvertor, вставить его в class

 public class MyDateTimeConvertor : DateTimeConverterBase { public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { return DateTime... 

wep api mvc4, веб-службы, пользовательский формат даты.

  • Json.Net добавляет $ id к объектам EF, несмотря на то, что PreserveReferencesHandling указывает на "None"
  • Сериализация нулевого значения в JSON.NET
  • Как убедиться, что строка действительна JSON с использованием JSON.NET
  • JSON.Net Xml Сериализация неправильно понимает массивы
  • Ошибка JSON.NET Локальный цикл привязки для типа
  • Уничтожить вложенные JSON в объекты C #
  • Заставить JSON.NET включать миллисекунды при сериализации DateTime (даже если компонент ms равен нулю)
  • Как изменить имена свойств при сериализации с помощью Json.net?
  • JSON.NET и nHibernate Lazy Загрузка коллекций
  • Интерфейсы для десериализации в JSON.NET
  • Newtonsoft JSON Deserialize
  • Interesting Posts
    Давайте будем гением компьютера.