【C# 教程系列第 25 篇】Json 模拟简单的登陆、注册功能

183 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

这是【C# 教程系列第 25 篇】,如果觉得有用的话,欢迎关注专栏。

本篇博客将使用 Json 模拟简单的登陆,注册功能,在利用 Json 存储我们输入的账号,密码之前,不妨先看一下下面的思维导图,这样实现起来思路也会更加清晰,明畅。

在这里插入图片描述

接着我们先来看一下工程效果

动态演示图一:验证注册界面输入账号,密码的合法性

在这里插入图片描述

动态演示图二:验证登陆界面输入账号,密码的存在性

在这里插入图片描述

动态演示图三:验证已注册账号的重复性

在这里插入图片描述

界面随便搭的,大家不要在意这些细节,哈哈。

这里我先只把注册时用到的代码粘贴到下面,如下所示:

1:注册界面注册按钮事件

//注册界面注册按钮事件
    public void BtnRegister()
    {
        if (inputAccount_R.text == string.Empty || inputPassword_R.text == string.Empty)
        {
            Tips("账号,密码不能为空");
            return;
        }

        //使用正则,来检测输入账号,密码的合法性
        Regex regexAcc = new Regex(outRange);
        if (regexAcc.IsMatch(inputAccount_R.text))
        {
            Tips("账号不能为纯汉字");
            return;
        }

        Regex regexPas = new Regex(pureNumber);
        if (regexPas.IsMatch(inputPassword_R.text))
        {
            Tips("密码不能为纯数字");
            return;
        }

        //如果输入符合规则,将用户输入的账号,密码存储到 UserData 数据类里
        UserData user = new UserData(inputAccount_R.text, inputPassword_R.text);
        SaveUserData(user);
    }

2:保存用户注册时的账号,密码

    //保存用户注册时的账号,密码
    public void SaveUserData(UserData user)
    {
        //指定 Json 文件路径
        string jsonFilePath = Application.dataPath + "/Resources/UserData.txt";

        //先判断本地 Json 文件是否存在

        //如果 Json 文件不存在(仅第一次时会走该判断)
        if (!File.Exists(jsonFilePath))
        {
            //存入用户数据
            DataManager.allUserData = new AllUserData();
            DataManager.allUserData.userDatasList.Add(user);
            Tips("恭喜注册成功");

            //创建 Json 文件(其实就是txt文件)
            File.CreateText(jsonFilePath).Dispose();
        }
        else
        {
            //如果 Json 文件存在,则验证账号重复性
            foreach (UserData item in DataManager.allUserData.userDatasList)
            {
                //如果账号重复
                if (string.Equals(user.Account, item.Account))
                {
                    Tips("该账号已存在");                   
                    return;
                }
            }

            //如果账号不重复,则写入到 AllUserData 数据类里,并提示注册成功
            DataManager.allUserData.userDatasList.Add(user);
            Tips("恭喜注册成功");

            //清空账号,密码
            inputAccount_R.text  = string.Empty;
            inputPassword_R.text = string.Empty;
        }

        //将输入写入到内存流中
        FileInfo     info    = new FileInfo(jsonFilePath);
        StreamWriter sw      = info.CreateText();
        string       jsonStr = JsonMapper.ToJson(DataManager.allUserData);
        sw.WriteLine(jsonStr);

        sw.Flush();
        sw.Dispose();
        sw.Close();

        //刷新资源
        AssetDatabase.Refresh();
    }

我把整个项目放到了我的 阿里云 (与github,码云一样,都可以代码管理), 这是我的项目链接:git@code.aliyun.com:suxing_xixi/Json.git,有需要的可以 clone 下来。

  • 不懂如何使用 Git 克隆项目的 点这里
  • 不懂如何检测注册账号时文本框输入内容合法性的 点这里

该测试仅实现从本地读取 Json 数据,并没有服务器方面的交互,如果项目有错误或者需要改进的地方,欢迎大家在评论区回复。 当然,如果这篇博客帮到了你,评论一下,点个关注,支持一下博主,这就是对我莫大的支持了。

晚安,奋斗中的我们……

你的问题得到解决了吗?欢迎在评论区留言。

赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。


结束语

技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。

最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。