refactor json parameter handling