Looks like the URL used when no parameters are provided (normalBuildUrl=build) doesn't return any JSON. When the paramerizedBuildUrl URL is used (buildWithParameters) Jenkins returns a JSON string that is converted into an object.
I looked into just using 'buildWithParameters' for both, but I get a 500 error when calling non-parameterised jobs with 'buildWithParameters'.
I see two options:
You can update sendHTTPCall to return null when no JSON is returned from the remote Server. The main issue with this method is all calls to sendHTTPCall will have to check response for null values.
Either that or pass the bug to JenkinsCore to ask them to return JSON objects from 'build' link.