Most of this method looks common to both JSON and XML base templates, so could call common base, but I'd have thought the JSON variety should throw a IJSONException and have it's own exception codes (JSONReadExceptCode).