Make Json support a separate module

Issue #696