Josn实现本地注册登录并存取账户信息

Josn实现本地注册登录并存取账户信息

  在本地创建一个playerInfoTest的text文本,由于StreamReader读取Json的原因,文本中加入一个英文的"{}",然后把后缀名改为json,拖到Unity的Assets文件夹下,将脚本挂上相应的物体,即可运行,数据是可以进行本地存取的,也不会覆盖,初学者可以学习一下。
  效果如下:
在这里插入图片描述
  脚本如下:

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
using LitJson;
public class JsonWriteToFile : MonoBehaviour
{
    public InputField account;
    public InputField passWord;
    public Button Yes;
    string jsonFilePath;
    Dictionary<string, string> playerInfoDic;//储存信息的字典
    void Start()
    {
        jsonFilePath = Application.dataPath + "/playerInfoTest.Json";
        playerInfoDic = JsonMapper.ToObject<Dictionary<string, string>>(new StreamReader(jsonFilePath).ReadToEnd());
        if (playerInfoDic == null)
        {
            playerInfoDic = new Dictionary<string, string>();
        }
        Yes.onClick.AddListener(() => { RegistInfo(); });
    }

    /// <summary>
    /// 保存信息到文件中的方法
    /// </summary>
    void SaveInfo()
    {
        //将信息转换为标准的Json字符串
        string jsonStr = JsonMapper.ToJson(playerInfoDic);
        //将信息写入文件中
        StreamWriter sw = new StreamWriter(jsonFilePath);
        sw.Write(jsonStr);
        sw.Close(); sw.Dispose();
        //File.WriteAllText(jsonFilePath, jsonStr);
    }

    /// <summary>
    /// 从Josn文本中读取信息的方法
    /// </summary>
    Dictionary<string, string> ReadJsonFileInfo()
    {
        StreamReader sr = new StreamReader(jsonFilePath);
        string currentInfo = sr.ReadToEnd();
        playerInfoDic = JsonMapper.ToObject<Dictionary<string, string>>(currentInfo);
        当前已存在于Json文本中的信息
        //string currentInfo = File.ReadAllText(jsonFilePath);
        //Dictionary<string, string> ReadInfo = JsonMapper.ToObject<Dictionary<string, string>>(currentInfo);
        返回文本信息字典
        sr.Close(); sr.Dispose();
        return playerInfoDic;
    }

    /// <summary>
    /// 注册信息的方法
    /// </summary>
    void RegistInfo()
    {
        if (account.text.Length != 0 && passWord.text.Length != 0)
        {
            if (!ReadJsonFileInfo().ContainsKey(account.text))
            {
                playerInfoDic.Add(account.text, passWord.text);
                SaveInfo();
                Debug.Log("注册成功");
            }
            else
            {
                Debug.Log("账号已存在.请重新注册");
            }
        }
        else
        {
            Debug.Log("请输入信息");
        }
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值