def exportJsonFile(self, fileName):
        """
        Exports a json file that contains all the information of the current Profile.

        :ivar str fileName: The name of the output file to be exported.
        """

        # Because our Profile class is not directly JSON serializable, we exporrt the underlying 
        # dictionary. 
        data = dict()
        for key in self.__dict__.keys():
            if key != "preferences":
                data[key] = self.__dict__[key]
        
        # The Preference class is also not directly JSON serializable, so we export the underlying
        # dictionary for each Preference object.
        preferenceDicts = []
        for preference in self.preferences:
            preferenceDict = dict()
            for key in preference.__dict__.keys():
                preferenceDict[key] = preference.__dict__[key]
            preferenceDicts.append(preferenceDict)
        data["preferences"] = preferenceDicts

        outfile = open(fileName, 'w')
        json.dump(data, outfile)
        outfile.close()