json parse refactor