我们把数据从代码中保存到json中需要序列化数据到json格式,这里我们介绍一种使用Newtonsoft.Json的类库来进行序列化的方式
1.下载Newtonsoft.Json Dll下载地址:github地址
打开压缩包,把Bin\net20下的“Newtonsoft.Json.dll”拖放至自己工程Assets下
2.引入命名空间using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
3.序列化类“mydata”到json格式
mydata = new MyData;
string json = JsonConvert.SerializeObject(mydata);
4.反序列化到data类
data= JsonConvert.DeserializeObject(json);
MyData是反序列化出来的格式
5.String转jsonJObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);//或者JObject jo = JObject.Parse(jsonText);
常见问题: 当你把下载好的压缩包里的dll放进工程时可能会报一些错,我发现是因为工具版本与unity版本不匹配导致的,可以官网下载更旧的版本试试。(我当时unity是2018.2.4的,下了12.0.3的工具然后发现报错,就试了下12.0.2版的工具,可以用) 解决方法有不止一种,也可以到网上找找其他更优秀的方法
特点: 1.不需要在指定的类上加 [Serializable]的特性 2.可以指定忽略哪些属性
总结:Newtonsoft是目前来讲我最常用的json序列化工具了,个人感觉和LitJson不相上下
附录: LitJson的使用教程 c# Json文件操作(JsonUtility)