public static CTestAccountMainData LoadAccountMainData()
    {
        string str = PlayerPrefs.GetString(CTestAccountMainKey);

        if (string.IsNullOrEmpty(str))
        {
            return(new CTestAccountMainData("CTest"));
        }

        CTestAccountSaveData saveData = JsonUtility.FromJson <CTestAccountSaveData>(str);

        CTestAccountMainData mainData = new CTestAccountMainData(saveData.accountName);

        string[] dataStrList = saveData.accountDataStr.Split(new char[] { '|' });

        for (int i = 0; i < dataStrList.Length; i++)
        {
            CTestAccountData data = JsonUtility.FromJson <CTestAccountData>(dataStrList[i]);
            if (data != null)
            {
                mainData.accountDataList.Add(data);
            }
        }

        return(mainData);
    }
    public static void SaveAccountMainData(CTestAccountMainData mainData)
    {
        if (mainData == null)
        {
            return;
        }

        string dataStr = "";

        if (mainData.accountDataList != null)
        {
            for (int i = 0; i < mainData.accountDataList.Count; i++)
            {
                dataStr += JsonUtility.ToJson(mainData.accountDataList[i]);
                if (i != mainData.accountDataList.Count - 1)
                {
                    dataStr += "|";
                }
            }
        }

        CTestAccountSaveData saveData = new CTestAccountSaveData(mainData.accountName, dataStr);

        PlayerPrefs.SetString(CTestAccountMainKey, JsonUtility.ToJson(saveData));
    }