unity 通过JsonUtility实现json数据的本地保存和读取

2021-08-17 23:59

阅读:975

本文主要讲解json数据在本地的保存和读取,使用的是unity5之后提供的JsonUtility工具。 一、关于json数据的保存 在实际开发中,有时候可能涉及到大量数据保存到本地,以便于下次客户端的使用,这时候将数据保存成json文件到本地就比较方便了,具体实现方法如下: 文件的创建,下面为便于编辑器和手机端都方便使用,我们将文件保存到StreamingAssets中: //保存json文件路径 string JsonPath() { return Application.streamingAssetsPath + "/JsonTest.json"; } 创建要保存的数据格式,这里创建了对应的玩家数据类 public class JsonData{ public List lsPlayerMessage;} //玩家信息[Serializable]public class PlayerMessage{ public int PlayerId; public string PlayerName; public List PlayerEquip;} //装备信息[Serializable]public class EquipMessage{ public int EquipId; public string EquipName;} 将对应的数据保存到对应的容器中,这里随便添加了一些初始值 ,进行测试: //初始化json数据 void InitJsonData() { jsonData.lsPlayerMessage = new List(); PlayerMessage playerMessage = new PlayerMessage(); playerMessage.PlayerId = 1; playerMessage.PlayerName = "Json"; playerMessage.PlayerEquip = new List(); EquipMessage equipMessage = new EquipMessage(); equipMessage.EquipId = 101; equipMessage.EquipName = "Gun"; playerMessage.PlayerEquip.Add(equipMessage); jsonData.lsPlayerMessage.Add(playerMessage); } 最后是讲上面json数据保存到本地: //保存json数据到本地 void SaveJson() { //如果本地没有对应的json 文件,重新创建 if (!File.Exists(JsonPath())) { File.Create(JsonPath()); } string json = JsonUtility.ToJson(jsonData, true); File.WriteAllText(JsonPath(), json); Debug.Log("保存成功"); } 运行结果如下: 二、关于json文件的读取: //从本地读取json数据 void ReadJson() { if (!File.Exists(JsonPath())) { Debug.LogError("读取的文件不存在!"); return; } string json = File.ReadAllText(JsonPath()); JsonData jsonTemp = new JsonData(); jsonTemp = JsonUtility.FromJson(json); Debug.Log("玩家数量:" + jsonTemp.lsPlayerMessage.Count); for (int i = 0; i


评论


亲,登录后才可以留言!