Gestione della data personalizzata di WebApi Json.NET

Ho globalmente configurato in modo esplicito la mia app MVC4 per utilizzare il serializzatore JSON.NET. So che ho la scelta di utilizzare le date standard ISO o il vecchio formato data Microsoft durante la serializzazione delle date.

Ma come posso produrre la mia stringa di formato dataTime personalizzata, come: “gg / mm / aaaa hh: mm”.

Potrei farlo in MVC3 quando collego Json.NET come serializzatore predefinito ma non riesco a farlo in MVC4.

Finora in application_start ho fatto:

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; 

e il convertitore personalizzato che ho provato a implorare è come questo:

  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")); } } 

Qualsiasi aiuto sarebbe apprezzato 🙂

Modifica il tuo codice di impostazione delle impostazioni in questo modo:

 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; 

Nel tuo codice stai solo cambiando il valore della variabile locale.

Grazie, stavo impazzendo, questo ha funzionato molto bene per me, incolla questo nel Global.asax.cs

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

crea una class MyDateTimeConvertor, incolla questo nella class

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

wep api mvc4, servizi Web, formato data personalizzato.