I have globally explicitly configured my MVC4 app to use the JSON.NET serializer . I know i have the choice of using the ISO standard dates or the old Microsoft date format when serializing dates.
But how can i output my own custom dateTime format string ,like :"dd/MM/yyyy hh:mm".
I could do this in MVC3 when plugging in Json.NET as the default serializer but cant seem to do it in MVC4 .
So far in the application_start i have done :
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;
and the custom converter i tried to impliment is like so :
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 would be appreciated :)
-
Keep in mind the root of your issue here is you did not assign jSettings to GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings. Instead you assigned it to "settings", which is a local variable.Brain2000– Brain20002020年03月09日 19:03:24 +00:00Commented Mar 9, 2020 at 19:03
2 Answers 2
Change your setting set up code like this:
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;
In your code you are just changing local variable value.
-
so i was assigning the the newly configured Jsonserializersettings to serializer settings instead of its parent jsonFormatter??....hmmm quite a lot of it was guess work tbh, but thankyou for your help :)P0DD3R5– P0DD3R52012年10月12日 12:07:01 +00:00Commented Oct 12, 2012 at 12:07
Thanks, I was going crazy, this worked very well for me,paste this in the Global.asax.cs
JsonMediaTypeFormatter jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
JsonSerializerSettings jSettings =...
create a class MyDateTimeConvertor, paste this in the class
public class MyDateTimeConvertor : DateTimeConverterBase
{
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return DateTime...
wep api mvc4, web services, custom date format.
Explore related questions
See similar questions with these tags.