数据可持久化之JSON
一、JsonUtility
1. 什么是JsonUtility
JsonUtiUtlity是Unity自带的用于解析JSON的公共类。
- 1.将内存中
对象序列化成为Json格式的字符串
。- 2.
将Json字符串反序列化为类对象
。
2. 在文件中存读字符串
(1) 存储字符串到指定路径文件中
1 File.WritellText(Application.persistentDataPath+"Test.json","wqx存储的json文件")l;①第一个参数:存储路径。
②第二个参数:存储的字符串的内容。
注:文件不存在,可以自己自动创建。
但是不能创建文件夹,路径有未创建的文件夹会报错
(2) 在指定路径文件中读取字符串
1 string str = File.ReadAllText(路径同上);
3. JsonUtility序列化
序列化:把内容中的数据存储在硬盘上。
方法:JsonUtility.ToJson(对象)
- 注:
- float序列化时看起来会有一些误差。
- 自定义类需要加上序列化特性[System.Serializable]
- 想要序列化私有变量 需要加上特性[SerializeField]
- JsonUtility不支持字典
- JsonUtility存储null对象 不会是null,而是默认的数据类型。(类定义的默认值)
4.JsonUtility反序化
反序列化:把硬盘上的数据,读取到内存中。
方法:
1 string str = JsonUtility.FromJson(字符串)
- 注:如果Json中数据少了,读取到内容中类对象不会报错
(1) 先读取文件中的Json的字符串
1 jsonStr File.ReadAllText(路径)(2) 用Json字符串反序列化成类对象
1 MrTang t3 = JsonUtility.FromJson<MrTang> (jsonStr);
5. 注意事项
- (1)JsonUtility无法直接读取数据集合。就是无法读取数据集合类,比如List<>。必须包裹在一个对象里。
- (2)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 游戏开发笔记!
评论