protected function loadJSON($path)
    {
        $this->typeCheck->loadJSON(func_get_args());

        $data = json_decode($this->load($path));
        $lastJSONError = json_last_error();
        if (JSON_ERROR_NONE !== $lastJSONError) {
            throw new Exception\InvalidJSONException($lastJSONError, $path);
        }

        return $data;
    }
protected function loadJSON($path)
    {
        $this->typeCheck->loadJSON(func_get_args());

        $data = json_decode($this->load($path));
        $lastJSONError = json_last_error();
        if (JSON_ERROR_NONE !== $lastJSONError) {
            throw new Exception\InvalidJSONException($lastJSONError, $path);
        }

        return $data;
    }
@param string $path

@return mixed