public function getQueryCriteria()
    {
        if (false === $this->isQuery()) {
            return [];
        }

        $queryKey = self::FILTER_QUERY;
        $criteriaKey = self::FILTER_QUERY_CRITERIA;

        $decoded = @json_decode($this->getFilter($queryKey)[$criteriaKey], true);
        if (!is_array($decoded)) {
            $param = sprintf('%s[%s][%s]', self::PARAM_FILTERING, $queryKey, $criteriaKey);
            throw RestException::invalidQueryParam($param, 'Was the value sent as valid JSON?');
        }
        return $decoded;
    }