minijson使用_Unity中使用JSON实现数据读写

本文介绍了在Unity中使用MiniJSON库进行数据的保存和读取,包括将数据转换为JSON格式,保存到本地文件,以及从JSON文件中加载数据。详细展示了如何处理字典数据并将其序列化和反序列化。
摘要由CSDN通过智能技术生成

由于某些原因需要将数据保存在本地,并且在某些时候进行编辑并加载,比如保存场景信息,保存游戏状态,保存运行时获得的数据等。

常规的方法有XML,二进制和JSON,前两个不需要通过第三方库实现,缺点是相对繁琐。JSON的好处是数据轻量,过程简单,这次遇到数据保存的需求时,尝试了这三种方法,最终选择了JSON。

导入JSON库

这里使用的是同事推荐的JSON.cs,下载地址。

代码中添加命名空间

using MiniJSON2;

JSON库的使用

public JSON(object jsonKey , object jsonValue)

{

fields.Add(jsonKey.ToString(),jsonValue);

}

JSON数据库的一个关键API是JSON(object Key ,object Value),它类似Dictionary类型,使用方法是将Value与某一个key一一对应。

导出JSON到文件

为了换装,使用的数据结构是Dictionary>,从效果上来说就是希望通过换装部位名称加一个数字,就能得到应有资源的地址,从而用Resources.Load或者www来加载资源。接下来就是思考如何将他们转成JSON数据,开始还想着既然有三个变量,那我应该用三个数据来保存以便以后加载时组合吧,但……嗯想想也是挺傻的,估计是最近感冒了(一定是这样 (´▽`) )。

private void SetJsonData(ref JSON resJson, string key)

{

List res_man = new List();

if (avatarData._avatarResData.ContainsKey(key))//判断key是否存在{

foreach (KeyValuePair i in avatarData._avatarResData[key])

{

res_man.Add(i.Value);

}

resJson[key] = res_man.ToArray();

}

else

Debug.Log(key + "key is none");

Debug.Log(key + " is done=================");

}

这里的avatarData._avatarResData[key]就是之前定义的字典数据,通过遍历avatarData._avatarResData这个字典数据,得到某个key的所有路径数组数据并保存在临时变量res_man里,之后通过resJson[key] = res_man.ToArray();将res_man里的数据赋值给resJson[key],这样得到的JSON数据里即有了[key]也有了与之对应的[value](数组型value)。接下来需要将处理好的JSON数据保存到本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值