'The function for parsing the JSON response to the vars dictionary.'

def parse(self):

    try:
        self.vars['handle'] = self.json['handle'].strip()
    except (KeyError, ValueError, TypeError):
        raise InvalidEntityObject('Handle    is    missing    for    RDAP    entity')
    for v in ['roles', 'country']:
        try:
            self.vars[v] = self.json[v]
        except (KeyError, ValueError):
            pass
    try:
        vcard = self.json['vcardArray'][1]
        c = _RDAPContact(vcard)
        c.parse()
        self.vars['contact'] = c.vars
    except (KeyError, ValueError, TypeError):
        pass
    try:
        self.vars['events_actor'] = self.summarize_events(self.json['asEventActor'])
    except (KeyError, ValueError, TypeError):
        pass
    self.vars['entities'] = []
    try:
        for ent in self.json['entities']:
            if (ent['handle'] not in self.vars['entities']):
                self.vars['entities'].append(ent['handle'])
    except (KeyError, ValueError, TypeError):
        pass
    if (not self.vars['entities']):
        self.vars['entities'] = None
    self._parse()
