protected static function _parse_json($json) {
    $rval = json_decode($json);
    $error = json_last_error();
    if($error === JSON_ERROR_NONE && $rval === null) {
      $error = JSON_ERROR_SYNTAX;
    }
    switch($error) {
    case JSON_ERROR_NONE:
      break;
    case JSON_ERROR_DEPTH:
      throw new JsonLdException(
        'Could not parse JSON; the maximum stack depth has been exceeded.',
        'jsonld.ParseError');
    case JSON_ERROR_STATE_MISMATCH:
      throw new JsonLdException(
        'Could not parse JSON; invalid or malformed JSON.',
        'jsonld.ParseError');
    case JSON_ERROR_CTRL_CHAR:
    case JSON_ERROR_SYNTAX:
      throw new JsonLdException(
        'Could not parse JSON; syntax error, malformed JSON.',
        'jsonld.ParseError');
    case JSON_ERROR_UTF8:
      throw new JsonLdException(
        'Could not parse JSON from URL; malformed UTF-8 characters.',
        'jsonld.ParseError');
    default:
      throw new JsonLdException(
        'Could not parse JSON from URL; unknown error.',
        'jsonld.ParseError');
    }
    return $rval;
  }
protected static function _parse_json($json) {
    $rval = json_decode($json);
    $error = json_last_error();
    if($error === JSON_ERROR_NONE && $rval === null) {
      $error = JSON_ERROR_SYNTAX;
    }
    switch($error) {
    case JSON_ERROR_NONE:
      break;
    case JSON_ERROR_DEPTH:
      throw new JsonLdException(
        'Could not parse JSON; the maximum stack depth has been exceeded.',
        'jsonld.ParseError');
    case JSON_ERROR_STATE_MISMATCH:
      throw new JsonLdException(
        'Could not parse JSON; invalid or malformed JSON.',
        'jsonld.ParseError');
    case JSON_ERROR_CTRL_CHAR:
    case JSON_ERROR_SYNTAX:
      throw new JsonLdException(
        'Could not parse JSON; syntax error, malformed JSON.',
        'jsonld.ParseError');
    case JSON_ERROR_UTF8:
      throw new JsonLdException(
        'Could not parse JSON from URL; malformed UTF-8 characters.',
        'jsonld.ParseError');
    default:
      throw new JsonLdException(
        'Could not parse JSON from URL; unknown error.',
        'jsonld.ParseError');
    }
    return $rval;
  }
protected static function _parse_json ( $ json ) { $ rval = json_decode ( $ json ) ; $ error = json_last_error ( ) ; if ( $ error === JSON_ERROR_NONE && $ rval === null ) { $ error = JSON_ERROR_SYNTAX ; } switch ( $ error ) { case JSON_ERROR_NONE : break ; case JSON_ERROR_DEPTH : throw new JsonLdException ( 'Could not parse JSON; the maximum stack depth has been exceeded.' , 'jsonld.ParseError' ) ; case JSON_ERROR_STATE_MISMATCH : throw new JsonLdException ( 'Could not parse JSON; invalid or malformed JSON.' , 'jsonld.ParseError' ) ; case JSON_ERROR_CTRL_CHAR : case JSON_ERROR_SYNTAX : throw new JsonLdException ( 'Could not parse JSON; syntax error, malformed JSON.' , 'jsonld.ParseError' ) ; case JSON_ERROR_UTF8 : throw new JsonLdException ( 'Could not parse JSON from URL; malformed UTF-8 characters.' , 'jsonld.ParseError' ) ; default : throw new JsonLdException ( 'Could not parse JSON from URL; unknown error.' , 'jsonld.ParseError' ) ; } return $ rval ; }
Parses JSON and sets an appropriate exception message on error.

@param string $json the JSON to parse.

@return mixed the parsed JSON object or array.
Parses JSON and sets an appropriate exception message on error .