LINQPad query to parse JSON DateTime string

JSON (JavaScript Object Notation) is a data transfer format widely adopted on the web because it’s lightweight compared to XML. I touched on the topic of JSON in an earlier post when I posted some extension methods for compressing/decompressing string.

If you are unfamiliar with the JSON format or how it’s supported in .Net then you should take a look at the MSDN articles in the references section to get you started.

With regards to DateTime values, they appear as JSON strings in the form of “\/Date(1276675934513+0100)\/” which is not easy to read when you’re debugging. In order to convert this JSON string back to a humanly readable form you can use this LINQPad to parse it, just replace the JSON string at the top:

var json = "\"\\/Date(1276675934513+0100)\\/\"";
json.Dump();
var serializer = new DataContractJsonSerializer(typeof(DateTime));
var memString = new MemoryStream(Encoding.ASCII.GetBytes(json));
var d = (DateTime) serializer.ReadObject(memString);
d.Dump();

If you’re not using LINQPad already then you should! Written by Joe Albahari (co-writer of the C# in a Nutshell books) it can be a huge time saver because you can use it as a code snippet editor in addition to being a Database query tool.

Reference:

JSON.org

An introduction to JSON in JavaScript and .Net

Stand-alone JSON serialization

JSON Formatter & Validator

JSON.Net Codeplex project

LINQPad


Yan Cui

I’m an AWS Serverless Hero and the author of Production-Ready Serverless. I have run production workload at scale in AWS for nearly 10 years and I have been an architect or principal engineer with a variety of industries ranging from banking, e-commerce, sports streaming to mobile gaming. I currently work as an independent consultant focused on AWS and serverless.

You can contact me via Email, Twitter and LinkedIn.

Hire me.