Unity-LitJson-简单的存取数据

本文介绍了一个在Unity环境下使用的LitJson管理器类,该类提供了将JSON数据写入文件和从文件中读取JSON数据的功能。通过示例代码展示了如何使用这个类来保存和加载角色信息。

管理类:

using LitJson;
using System;
using System.IO;
using UnityEngine;

public class LitJsonMgr
{
    public static LitJsonMgr Instance = new LitJsonMgr();
    private LitJsonMgr()
    {

    }

    public bool WriteStringToFile(string fullPath, string data)
    {
        try
        {
            string directoryName = Path.GetDirectoryName(fullPath);
            if (!Directory.Exists(directoryName))
            {
                Directory.CreateDirectory(directoryName);
            }

            File.WriteAllText(fullPath, data);
            return true;
        }
        catch (Exception ex)
        {
            Debug.LogError(string.Format("WriteStringToFile fail, file=[{0}], Exception msg:[{1}]", fullPath, ex.ToString()));
            return false;
        }
    }

    public bool WriteToFile(string fullPath, JsonData data)
    {
        return WriteStringToFile(fullPath, data.ToJson());
    }

    public JsonData ReadFromFile(string fullPath)
    {
        try
        {
            var json = ReadStringFromFile(fullPath);
            if (string.IsNullOrEmpty(json))
            {
                return null;
            }

            return JsonMapper.ToObject(json);
        }
        catch (Exception ex)
        {
            Debug.LogErrorFormat("ReadFromFile {0} failed!, Exception:{1}", new object[2] { fullPath, ex.ToString() });
            return null;
        }
    }

    public string ReadStringFromFile(string fullPath)
    {
        try
        {
            if (!File.Exists(fullPath))
            {
                return null;
            }

            return File.ReadAllText(fullPath);
        }
        catch (Exception ex)
        {
            Debug.LogErrorFormat("ReadFromFile {0} failed!, Exception:{1}", new object[2] { fullPath, ex.ToString() });
            return null;
        }
    }
}

简单的存取测试代码:

using LitJson;
using UnityEngine;

public class LitJsonTest : MonoBehaviour
{
    public class Role
    {
        public string name;
        public int age;
    }

    private Role role = new Role();
    private string configPath = "/Config/RoleInfo.json";

    private void Awake()
    {
        role.name = "鲁班大师";
        role.age = 18;

        var data = JsonMapper.ToJson(role);
        var jsonData = JsonMapper.ToObject(data);

        LitJsonMgr.Instance.WriteToFile(Application.streamingAssetsPath + configPath, jsonData);
    }

    private void OnDisable()
    {
        var jsonData = LitJsonMgr.Instance.ReadFromFile(Application.streamingAssetsPath + configPath);
        var roleInfo = JsonMapper.ToObject<Role>(jsonData.ToJson());
        Debug.LogError(roleInfo.name);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值