code: def to_json(self, use_sbo=False):
          
          stmt_type = type(self).__name__
          # Original comment: For backwards compatibility, could be removed later
          all_stmts = [self] + self.supports + self.supported_by
          for st in all_stmts:
              if not hasattr(st, 'uuid'):
                  st.uuid = '%s' % uuid.uuid4()
          ##################
          json_dict = _o(type=stmt_type)
          json_dict['belief'] = self.belief
          if self.evidence:
              evidence = [ev.to_json() for ev in self.evidence]
              json_dict['evidence'] = evidence
          json_dict['id'] = '%s' % self.uuid
          if self.supports:
              json_dict['supports'] = \
                  ['%s' % st.uuid for st in self.supports]
          if self.supported_by:
              json_dict['supported_by'] = \
                  ['%s' % st.uuid for st in self.supported_by]
  
          def get_sbo_term(cls):
              sbo_term = stmt_sbo_map.get(cls.__name__.lower())
              while not sbo_term:
                  cls = cls.__bases__[0]
                  sbo_term = stmt_sbo_map.get(cls.__name__.lower())
              return sbo_term
  
          if use_sbo:
              sbo_term = get_sbo_term(self.__class__)
              json_dict['sbo'] = \
                  'http://identifiers.org/sbo/SBO:%s' % sbo_term
          return json_dict
docs: Return serialized Statement as a JSON dict.
  
          Parameters
          ----------
          use_sbo : Optional[bool]
              If True, SBO annotations are added to each applicable element of
              the JSON. Default: False
  
          Returns
          -------
          json_dict : dict
              The JSON-serialized INDRA Statement.