1.存储读取数据
储存文本文件到本地
1 | File.WriteAllText(Application.persistentDataPath + "/Test.json","保存的字符串"); |
注意
- File: 属于System.IO命名空间
- Application.persistentDataPath: 可读写的路径
读取文本文件
1 | string srt = File.ReadAllText(Application.persistentDataPath + "/Test.json") |
2.序列化JsonUlity
转化成JSON
1 | string str = JsonUlity.ToJson(t);//传入对象 |
注意
- ==自定义的类==需要加上[Systm.Serializable]
- 序列化私有变量需要加上[Serializfiled]
- JsonUtlity不支持==字典==的序列化
- JsonUtlity储存null时不会是null而是==默认数据==
3.反序列化JsonUlity
JSON转化成类对象
1 | T temp = JsonUlity.FromJson<T>(); |
注意
无法直接读取==数据集合==
需要用一个对象包裹才行
必须用==UTF-8==才行
0502175030142.png)
4. LitJson序列化
转化成JSON
1 | string str = JsonMapper.ToJson(t);//传入对象 |
注意
- 支持字典
- 不需要加serialziable
- 支持null
- ==不支持私有变量==
- 序列化时有坑 字典如果==键====是数字类型 会转化成字符串类型==
5. LitJson反序列化
JSON转化成类对象
- JsonData类型接受数据
1 | JsonData jsonData = JsonMapper.ToObject(jsonStr); |
- 泛型接受数据
1 | T jsonData = JsonMapper.ToObject<T>(jsonStr); |
注意
序列化时类结构需要==有无参构造==函数否则会报错,写有参构造行数会顶掉无参构造函数,因为反序列化时会用的无参构造函数
序列化时有坑 字典如果==键是数字类型== 会转化成字符串类型,反序列化时对应不上会报错
可以直接读取数据集合
JOSN最后==不要加逗号==
UTF-8
可以读取==数据集合==
6.对比JsonUtilty和LitJson
LitJson | JsonUtilty | |
---|---|---|
自定义类 | 不需要加特性 | 需要加特性 |
私有变量 | 不支持 | 支特(加特性) |
字典 | 支持 | 不支特 |
数据反序列化为数据集合 | 支持 | 不支持 |
自定义类构造函数 | ==要求有无参构造== | 不要求 |
null | ==存 nu11== | 存储默认值 |