def METHOD_NAME(cls, dataJson: str):
    try:
        dataList = json.loads(dataJson)
    except:
        dataList = dataJson
    def parseProject(data):
        try:
            fixedData = json.loads(data)
        except:
            fixedData = data
        fixedData["user"] = fixedData["userId"]
        del fixedData["userId"]
        fixedData["status"] = Status(fixedData["status"])
        try:
            researchId = fixedData["researchId"]
            researchIndex = fixedData["researchIndex"]
            del fixedData["researchId"]
            del fixedData["researchIndex"]
        except Exception as e:
            logger.error("{}, data: {}".format(e, fixedData))
            logger.debug("no researchIndex or Id found")
        project = cls(**fixedData)
        try:
            project.researchId = researchId
            project.researchIndex = researchIndex
        except Exception as e:
            logger.error("{}, data: {}".format(e, project.dict))
        return project
    if isinstance(dataList, list):
        l = []
        for data in dataList:
            l.append(parseProject(data))
        return l
    return parseProject(dataList)