 If we can't change the existing signature/behaviour (which I sympathise with), how about adding e.g. `tryGetJson` to return `T | undefined` instead of `T`.