Building a JSON parser in Go

This is part of a series of challenges I have been really enjoying in coding challenges. What I ended up with was closer to a linter than a parser, but extending it to be able to parse the json would not need much overhead.

As I was reading the challenge, my first thought was the interpreter that I built a long time ago while reading The Interpreter book by Thorsten Ball, which I'd highly recommend. I've also got the compiler book, which I would like to go through at some point.

The majority of the work is done by the lexer in lexer.go. The lexer takes care of the input traversal and does syntax validation. It is quite simple as the syntax for json is quite simple. Objects, Arrays etc are pretty much just recursively calling the existing parsing, and builds on top of the existing rules.

I'd highly recommend solving this one, Marshalling/UnMarshalling is quite a common occurrence on most servers. It's good to know how some of it works.

You can find my solution here. Also, if you decide to take up the challenge, I'd love to hear about it.