14

I have just installed ASP MVC 4 and my JSON dates are still coming back in the old format {"timestamp":"\/Date(1348070400000)\/"}.

I was under the impression that they should be coming back in the format 2012-02-18T00:54:06.8447642Z without me doing anything.

Note: JSON.NET is now an integral part of ASP.NET Web API so you can just us it out of the box.

My controller looks something like this

public JsonResult Test()
{
    return Json(new {timestamp = DateTime.Now()}, JsonRequestBehavior.AllowGet);
}

How can I get this to work? Do I need to make a change in my Global.asax.cs or Web.config?

1 Answer 1

22

I was under the impression that they should be coming back in the format 2012-02-18T00:54:06.8447642Z without me doing anything.

That's true only for ASP.NET Web API (ApiControllers). But standard ASP.NET MVC controller actions returning JsonResults still use the JavaScriptSerializer. So if you want to use ISO 8601 dates you could swap this serializer by JSON.NET by writing a custom action result. Just add the proper converter to the settings used by the serializer:

SerializerSettings.Converters.Add(new IsoDateTimeConverter());

You might be asking why they didn't implement JSON.NET for standard controllers. I guess it's for compatibility reasons as that would be an important breaking change. But I would probably have made JSON.NET the default serializer with a fallback option for those upgrading their existing applications.

Sign up to request clarification or add additional context in comments.

2 Comments

Hi, I have a ActionResult returning a PartialView with a model and I want the model to be serialized using the JsonNetResult class... any clue? Thanks a lot
If you want to return JSON then instead of returning a PartialView from your action you should return a custom ActionResult which is using JSON.NET as serializer - the JsonNetResult for example.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.