JSON Formatter

This closes #186.

Please let me know if there's any problem in JSON structure design.