ListJson 序列化与反序列化Json
JsonMapper.ToJson("数据对象");//序列化
ListJson 序列化与反序列化Json
JsonMapper.ToJson("数据对象");//序列化
6、LitJson 序列化
(1)LitJson是什么
第三方库,用于Json的序列化与反序列化,LitJson是C#编写,体积小、速度快、易于使用,它可以很容易地嵌入到代码中,只需要将LitJson代码拷贝到工程中即可
(2)获取LitJson
前往LitJson官网
通过官网前往Github获取最新版本代码
将src/LitJson的代码拷贝到Unity工程中,即可开始使用LItJson
(3)使用LitJson进行序列化
方法:JsonMapper.ToJson(对象)
注意:
相对JsonUtility不需要加特性
不能序列化私有变量
支持字典类型
需要引用LitJson命名空间
Li可以保存 null类型
使用和上面同样的例子,但是要把上面的对象、成员的特性移除(因为这些特性是针对JsonUtility的):
string jsonStr = JsonMapper.ToJson(p);
File.WriteAllText(Application.streamingAssetsPath + "/lesson2.json", jsonStr);
结果为:
{"name":"Well","age":19,"sex":true,"testF":1.3,"testD":1.3,"ids":[1,2,3,4],"ids2":[1,2,3,4],"dic":{"1":"123","2":"123"},"dic2":{"1":"123","2":"123"},"s1":null,"s2":[{"age":2,"name":"Ming"},{"age":3,"name":"Qiang"}]}
可以发现,字典能够存储(字典的键都是字符串),同时null能够表示,但是私有、保护变量无法存储,同时如果存储的有中文,表示方法与JsonUtility也不一样
(4)使用LitJson进行反序列化
(5)注意事项
获取LitJson
将代码拷贝到unity工程中,即src中的litjson文件夹
序列化:
JsonMapper.ToJson(对象);
私有变量不能序列化
可以保存null
使用LitJson 序列化
方法:JsonMapper.ToJson(对象)
注意:
1.相对JsonUtlity不需要加特性
2.不能序列化私有变量
3.支持字典,字典的键 建议都是字符串,因为Json的特点 Json的键会加双引号
4.需要引用Json.LitJson命名空间
5.LitJson可以准确保存null