protected function readJson($path)
    {
        $jsonData = @file_get_contents($path);

        if (false === $jsonData) {
            throw new ConfigurationReadException($path);
        }

        $data = json_decode($jsonData);
        $jsonError = json_last_error();
        if (JSON_ERROR_NONE !== $jsonError) {
            throw new InvalidJsonException($path, $jsonError);
        }

        return new ObjectAccess($data);
    }