Unity自带的Json解析类 JsonUtility 有几点要注意:
1.【序列化时(内存到硬盘)】:
用 :JsonUtility.ToJson(对象)
注意:
1.float 序列化会有数据误差
2.自定义类 嵌套自定义类,里面那个类 需要加上序列化特性[System.Serializable]
3.想要序列化私有变量,需要加上特性[SerializeField]
4.JsonUtility 不支持 C#中的字典集合 Dictionary
5.JsonUtility 存储null 对象不会是 null ,而是默认值。
2.【反序列化(硬盘到内存)时】:
有两个方法(比如我们是一个Apple类):
方法一:
Apple a1 = JsonUtility.FromJson(jsonStr, typeof(Apple)) as Apple;
方法二:
Apple a2 = JsonUtility.FromJson《Apple》(jsonStr); //★ 这里Apple 外面是泛型。本来单尖括号,但是博客园保存不上,只能写双尖括号了
注意:1.JsonUtility 无法直接读取数据集合:比如一个Json 文件,最外层是[]数组 而不是{} 对象 ,这样的json文件不能读,除非再改成最外面是 {} 对象格式。
2.文档编码格式 必须是UTF-8