':return: A dict containing all (*) the information from this Info
instance, which can be serialized using python\'s json module.
(*) There is some loss of fidelity, make sure you read the
implementation before using it for anything other than
writing a report.'

def to_json(self):

    attributes = {}
    long_description = None
    fix_guidance = None
    fix_effort = None
    tags = None
    wasc_ids = None
    wasc_urls = None
    cwe_urls = None
    cwe_ids = None
    references = None
    owasp_top_10_references = None
    for (k, v) in self.iteritems():
        attributes[str(k)] = str(v)
    if self.has_db_details():
        long_description = self.get_long_description()
        fix_guidance = self.get_fix_guidance()
        fix_effort = self.get_fix_effort()
        tags = self.get_tags()
        wasc_ids = self.get_wasc_ids()
        cwe_ids = self.get_cwe_ids()
        wasc_urls = [u for u in self.get_wasc_urls()]
        cwe_urls = [u for u in self.get_cwe_urls()]
        owasp_top_10_references = []
        for (owasp_version, risk_id, ref) in self.get_owasp_top_10_references():
            data = {'owasp_version': owasp_version, 'risk_id': risk_id, 'link': ref}
            owasp_top_10_references.append(data)
        references = []
        for ref in self.get_references():
            data = {'url': ref.url, 'title': ref.title}
            references.append(data)
    _data = {'url': str(self.get_url()), 'var': self.get_token_name(), 'response_ids': self.get_id(), 'vulndb_id': self.get_vulndb_id(), 'name': self.get_name(), 'desc': self.get_desc(with_id=False), 'long_description': long_description, 'fix_guidance': fix_guidance, 'fix_effort': fix_effort, 'tags': tags, 'wasc_ids': wasc_ids, 'wasc_urls': wasc_urls, 'cwe_urls': cwe_urls, 'cwe_ids': cwe_ids, 'references': references, 'owasp_top_10_references': owasp_top_10_references, 'plugin_name': self.get_plugin_name(), 'severity': self.get_severity(), 'attributes': attributes, 'highlight': list(self.get_to_highlight()), 'uniq_id': self.get_uniq_id()}
    return _data
