欢迎光临散文网 会员登陆 & 注册

unity使用Newtonsoft.Json

2021-10-14 23:27 作者:柯昌弟弟c  | 我要投稿

一.在Unity中使用Newtonsoft.Json来生成和读取json


首先要在项目中添加引用:Newtonsoft.Json.dll

然后在代码中添加命名空间:using Newtonsoft.Json;

这里是Json序列化和反序列化的两个方法

  1. 序列化:JsonConvert.SerializeObject(object value)

  2. 反序列化:JsonConvert.DeserializeObject(string value, Type type)

二.使用Newtonsoft.Json时须注意的一些细节

1.数据重复添加

如果数据存在泛型List或者Arrlist时,序列化和反序列化之后会出现数据成倍的增加,最后造成内存溢出。(数组在序列化时是没有问题的)

遇到这个情况的时候也是排查了很久,终于找到了一个解决办法,在含有泛型list和arrlist的构造方法中添加一个参数(无实际用途),这样就可以避免序列化List时数据成倍增加。

2.字段推荐封装

说起这个,是铁子提出到一个很有趣的事情

铁子:如果字段用private修饰使用属性来访问,那么在Json序列化的时候,数据不会存进去。

(1)首先说一下c#中封装的定义:

        被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

(2)封装的意义

         1、封装数据属性:明确的区分内外,控制外部对隐藏的属性的操作行为

         2、封装方法:隔离复杂度

所以要好好使用封装,养成良好的代码习惯

3.字典中K值不可以是数值类型

在使用字典存储时,遇到一个错误:写一个字典,存入json文件。之后读出判断是否存在key。结果惊奇的发现,同一个key居然存在两次。

原因:json会将数值key转换为unicode

结论:使用json时字典key不可以为数值类型



unity使用Newtonsoft.Json的评论 (共 条)

分享到微博请遵守国家法律