Json读写2017.9.23

//信息类
public class PlayerInfo
{
    public int SerialNum;
    public string ID:
    public int HitNum;
    public int DiglettCount;
    public int AwardNum;
}
//操作类
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using LitJson;

public class PlayerInfoCtrl : Monobehaviour
{
    //类 寄存器
    private PlayerInfo cInfo = new PlayerInfo();
    public PlayerInfo CurrentPlayer
    {
        get{return cInfo;}
    }
    //声明路径
    string path = Application.dataPath + "/playerInfo.json";
    //读取方法
    void Load()
    {
        //读取文档方法,方法返回值是一个数组。
        string[] AllPlayerInfos = File.ReadAllLines(Path);
        //new一个List用于存放PlayerInfo类
        List<PlayerInfo> dateList = new List<PlayerInfo>();
        foreach(var v in AllPlayerInfos)
        {
            //JsonMapper.ToObject返回一个字符串(每一条info存放一位玩家信息)
            PlayerInfo info = JsonMapper.ToObject<PlayerInfo>(v);
            //遍历所有的PlayerInfo类(所有玩家的信息),然后存入dateList中
            dateList.Add(info);
        }
    }
    //写入方法
    void Save()
    {
        List<string> infolist;
        //如果存在这个文件的信息(路径存在)
        if(File.Exists(path))
        {
            //从文件中读取所有行
            string[] AllPlayerInfos = File.ReadAllLines(path);
            //然后添加到字符串List infolist中
            infolist = new List<string>(AllPlayerInfos);
            //如果这个字符串数组不为空(里面有数据)
            if(AllPlayerInfos!=null)
            {
                //那么它的序号(SeriaNum)就是,AllPlayerInfos.Length+1;
                cInfo.SeriaNum = AllPlayerInfos.Length + 1;
            }
        }
        else
        {
            //如果里面没有数据,new一个字符串List
            infolist = new List<string>();
            //这时候,它的序号就是从1开始
            cInfo.SerialNum = 1;
        }
        //实例化一个新的info类
        PlayerInfo info = new PlayerInfo();

        //然后这里用代码添加各种info类中所包含的信息

        //将添加过信息的info类转换为Json字符串
        string nowInfo = JsonMapper.ToJson(info);
        //把最新的一条用于存储玩家信息的类追加到字符串中
        infolist.Add(nowInfo);
        //然后将数据按行全部写入Json文本中(这里注意.ToArray()方法返回的是一个字符串数组)
        File.WriteAllLines(path,infolist.ToArray());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值