LINQPad query to parse JSON DateTime string

Yan Cui

I help clients go faster for less using serverless technologies.

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

Whenever you’re ready, here are 3 ways I can help you:

  1. Production-Ready Serverless: Join 20+ AWS Heroes & Community Builders and 1000+ other students in levelling up your serverless game. This is your one-stop shop for quickly levelling up your serverless skills.
  2. I help clients launch product ideas, improve their development processes and upskill their teams. If you’d like to work together, then let’s get in touch.
  3. Join my community on Discord, ask questions, and join the discussion on all things AWS and Serverless.

Leave a Comment

Your email address will not be published. Required fields are marked *