public function unserialize($serialized)
    {
        $obj = json_decode($serialized, true);
        if ($obj && is_array($obj) && json_last_error() === JSON_ERROR_NONE) {
            $this->exchangeArray($obj['this']);
            $this->data = (array)$obj['data'];
            $this->set_response_name((string)$obj['name']);
            $this->merged = (array)$obj['merged'];
        } else {
            throw new PheryException('Invalid data passed to unserialize');
        }
        return $this;
    }