code: def json(self, attribs=None, recurse=True, ignorelist=False):
          
          jsonnode = {}
  
          jsonnode['type'] = self.XMLTAG
          if self.id:
              jsonnode['id'] = self.id
          if self.set:
              jsonnode['set'] = self.set
          if self.cls:
              jsonnode['class'] = self.cls
          if self.annotator:
              jsonnode['annotator'] = self.annotator
          if self.annotatortype:
              if self.annotatortype == AnnotatorType.AUTO:
                  jsonnode['annotatortype'] = "auto"
              elif self.annotatortype == AnnotatorType.MANUAL:
                  jsonnode['annotatortype'] = "manual"
          if self.confidence is not None:
              jsonnode['confidence'] = self.confidence
          if self.n:
              jsonnode['n'] = self.n
          if self.auth:
              jsonnode['auth'] = self.auth
          if self.datetime:
              jsonnode['datetime'] = self.datetime.strftime("%Y-%m-%dT%H:%M:%S")
  
          if recurse: #pylint: disable=too-many-nested-blocks
              jsonnode['children'] = []
              if self.TEXTCONTAINER:
                  jsonnode['text'] = self.text()
              if self.PHONCONTAINER:
                  jsonnode['phon'] = self.phon()
              for child in self:
                  if self.TEXTCONTAINER and isstring(child):
                      jsonnode['children'].append(child)
                  elif not self.PHONCONTAINER:
                      #check ignore list
                      ignore = False
                      if ignorelist:
                          for e in ignorelist:
                              if isinstance(child,e):
                                  ignore = True
                                  break
                      if not ignore:
                          jsonnode['children'].append(child.json(attribs,recurse,ignorelist))
  
          if attribs:
              for attrib in attribs:
                  jsonnode[attrib] = attribs
  
          return jsonnode
docs: Serialises the FoLiA element and all its contents to a Python dictionary suitable for serialisation to JSON.
  
          Example::
  
              import json
              json.dumps(word.json())
  
          Returns:
              dict