本文主要讲解json数据在本地的保存和读取,使用的是unity5之后提供的JsonUtility工具。

一、关于json数据的保存

在实际开发中,有时候可能涉及到大量数据保存到本地,以便于下次客户端的使用,这时候将数据保存成json文件到本地就比较方便了,具体实现方法如下:

文件的创建,下面为便于编辑器和手机端都方便使用,我们将文件保存到StreamingAssets中:
//保存json文件路径 string JsonPath() { return Application.streamingAssetsPath +
"/JsonTest.json"; }
创建要保存的数据格式,这里创建了对应的玩家数据类
public class JsonData { public List<PlayerMessage> lsPlayerMessage; } //玩家信息
[Serializable] public class PlayerMessage { public int PlayerId; public string
PlayerName; public List<EquipMessage> PlayerEquip; } //装备信息 [Serializable]
public class EquipMessage { public int EquipId; public string EquipName; }
将对应的数据保存到对应的容器中,这里随便添加了一些初始值 ,进行测试:
//初始化json数据 void InitJsonData() { jsonData.lsPlayerMessage = new
List<PlayerMessage>(); PlayerMessage playerMessage = new PlayerMessage();
playerMessage.PlayerId = 1; playerMessage.PlayerName = "Json";
playerMessage.PlayerEquip = new List<EquipMessage>(); 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<JsonData>(json); Debug.Log("玩家数量:" +
jsonTemp.lsPlayerMessage.Count); for (int i = 0; i <
jsonTemp.lsPlayerMessage.Count; i++) {
Debug.Log(jsonTemp.lsPlayerMessage[i].PlayerId);
Debug.Log(jsonTemp.lsPlayerMessage[i].PlayerName); for (int j = 0; j <
jsonTemp.lsPlayerMessage[i].PlayerEquip.Count; j++) {
Debug.Log(jsonTemp.lsPlayerMessage[i].PlayerEquip[j].EquipId);
Debug.Log(jsonTemp.lsPlayerMessage[i].PlayerEquip[j].EquipName); } } }
运行结果如下:



这就是全部的关于josn的数据本地和保存。

工程链接:https://pan.baidu.com/s/1Rz6rpNj1jPS0t9NklFOhRw
<https://pan.baidu.com/s/1Rz6rpNj1jPS0t9NklFOhRw>

想了解更过unity相关知识,可以关注下方公众号,或者添加QQ群:879354767,不定期更新相关教程:


友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信