unity不同平台的发布路径JSON的序列化和反序列化

json的存储在不同平台存储的路径是不一样的,具体路径如下
在这里插入图片描述在这里插入图片描述
对于这些路径有些是可读可写的,不同平台有不同的路径,首先我们先读取,unity有个自带的JsonUtility的类,里面包含了存储的方法
同时也有自带的存储的方法在这里插入图片描述

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文件路径
string JsonPath()
{
return Application.streamingAssetsPath + “/JsonTest.json”;
}

初始化数据

//初始化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数据到本地
void SaveJson()
{
    //如果本地没有对应的json 文件,重新创建
    if (!File.Exists(JsonPath()))
    {
        File.Create(JsonPath());
    }
    string json = JsonUtility.ToJson(jsonData, true);
    File.WriteAllText(JsonPath(), json);
    Debug.Log("保存成功");
}

//从本地读取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 < 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);
}
}
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值