基本规则
Json格式是一种键值对结构
大括号{ } — 对象
中括号[ ] — 数组/List
冒号: — 键值对对应关系
逗号, — 数据分割
双引号 — 键名/字符串
字典当作对象,用大括号{ }
Tips:
如果数据表示对象,最外层要用大括号{ }
Excel转Json
在线转换网站:
结果需自行检查
JsonUtility
Unity自带的Json公共类
必备知识:文件中存储/读取字符串
File.WriteAllText(path, 要存储的str);
File.ReadAllText(path);
序列化:
string jsonStr = JsonUtility.ToJson(obj); File.WriteAllText(path, jsonStr);
反序列化:
string jsonStr = File.ReadAllText(path);
MrTang t3 = JsonUtility.FromJson<MrTang>(jsonStr);
或重载方法
MrTang t2 = JsonUtility.FromJson(jsonStr, typeof(MrTang)) as MrTang;(一般不用)
注意:
1.float序列化时看起来会有一些误差 2.自定义类需要加上序列化特性[System.Serializable] 3.想要序列化私有变量 需要加上特性[SerializeField] 4.JsonUtility不支持字典 5.JsonUtility存储null对象不会是null 而是默认值的数据 6.JsonUtility不能直接读取数据集合,需要间接读取
LitJson
处理Json的第三方库
序列化:
string jsonStr = JsonMapper.ToJson(t);
File.WriteAllText(path, jsonStr);
反序列化:
jsonStr = File.ReadAllText(path);
MrTang2 t2 = JsonMapper.ToObject<MrTang2>(jsonStr);
1.LitJson提供的序列化反序列化方法 JsonMapper.ToJson和ToObject<> 2.LitJson无需加特性 3.LitJson不支持私有变量 4.LitJson支持字典序列化反序列化,不支持Dictionary<int,TValue>,因为键在json默认以字符串形式保存 5.LitJson可以直接将数据反序列化为数据集合 6.LitJson反序列化时 自定义类型需要无参构造 7.LitJson可以准确的保存null类型
JsonUtlity和LitJson不同点
1.JsonUtlity是Unity自带,LitJson是第三方需要引用命名空间 2.JsonUtlity使用时自定义类需要加特性,LitJson不需要 3.JsonUtlity支持私有变量(加特性),LitJson不支持 4.JsonUtlity不支持字典,LitJson支持(但是键只能是字符串) 5.JsonUtlity不能直接将数据反序列化为数据集合(数组字典),LitJson可以 6.JsonUtlity对自定义类不要求有无参构造,LitJson需要 7.JsonUtlity存储空对象时会存储默认值而不是null,LitJson会存null

评论(0)
暂无评论