'Changes itself into a dictonary by recurssively calling the tojson on all its nodes. Think of it
as a dict in an array of dict in an array of dict and so on...'

def generateJsonableDict(self):

    jsonTree = ''
    if self.root:
        assert isinstance(self.root, Node)
        jsonTree = self.root.toJson()
        for (key, value) in self.rootAttr.items():
            jsonTree[key] = value
    else:
        raise Exception('Root    is    not    assigned!')
    return jsonTree
