Chad Levy Chad Levy - 4 years ago 184
JSON Question

Handling MongoDB's ISODate() when attempting to parse a serialized JSON string

I'm using MongoDB via the official C# driver with an ASP.NET MVC web site.

I have the following C# model:

public class Contact
public ObjectId Id { get; set; }
public string Name { get; set; }
public DateTime DateAdded { get; set; }

Which, when pulled from MongoDB and serialized into a JSON string via MVC looks like:

"_id" : ObjectId("52eaad4839b60812fca4bf28"),
"Name": "Joe Blow",
"DateAdded" : ISODate("2014-01-30T19:51:35.977Z")

When I attempt to convert this from a JSON string to a Javascript object on the browser via JSON.parse(), I get the following error:

Uncaught SyntaxError: Unexpected token I

This is because
is not valid JSON

is also not valid JSON, but the way I'm handling that is to simply perform a
on the JSON string prior to parsing it on the client. I considered doing the same for
but it feels a little too hacky.

Is there something I can do without resorting to regular expressions on the client side? Perhaps something from the MongoDB driver?

Answer Source

I think you need to tweak your JSON serializer a bit more. Try this:

var jsonWriterSettings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict };
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download