无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

unity使用Newtonsoft.Json

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

一.在Unity中使用Newtonsoft.Json來生成和讀取json


首先要在項(xiàng)目中添加引用:Newtonsoft.Json.dll

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

這里是Json序列化和反序列化的兩個(gè)方法

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

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

二.使用Newtonsoft.Json時(shí)須注意的一些細(xì)節(jié)

1.數(shù)據(jù)重復(fù)添加

如果數(shù)據(jù)存在泛型List或者Arrlist時(shí),序列化和反序列化之后會(huì)出現(xiàn)數(shù)據(jù)成倍的增加,最后造成內(nèi)存溢出。(數(shù)組在序列化時(shí)是沒有問題的)

遇到這個(gè)情況的時(shí)候也是排查了很久,終于找到了一個(gè)解決辦法,在含有泛型list和arrlist的構(gòu)造方法中添加一個(gè)參數(shù)(無實(shí)際用途),這樣就可以避免序列化List時(shí)數(shù)據(jù)成倍增加。

2.字段推薦封裝

說起這個(gè),是鐵子提出到一個(gè)很有趣的事情

鐵子:如果字段用private修飾使用屬性來訪問,那么在Json序列化的時(shí)候,數(shù)據(jù)不會(huì)存進(jìn)去。

(1)首先說一下c#中封裝的定義:

????????被定義為"把一個(gè)或多個(gè)項(xiàng)目封閉在一個(gè)物理的或者邏輯的包中"。在面向?qū)ο蟪绦蛟O(shè)計(jì)方法論中,封裝是為了防止對(duì)實(shí)現(xiàn)細(xì)節(jié)的訪問。

(2)封裝的意義

???????? 1、封裝數(shù)據(jù)屬性:明確的區(qū)分內(nèi)外,控制外部對(duì)隱藏的屬性的操作行為

?????????2、封裝方法:隔離復(fù)雜度

所以要好好使用封裝,養(yǎng)成良好的代碼習(xí)慣

3.字典中K值不可以是數(shù)值類型

在使用字典存儲(chǔ)時(shí),遇到一個(gè)錯(cuò)誤:寫一個(gè)字典,存入json文件。之后讀出判斷是否存在key。結(jié)果驚奇的發(fā)現(xiàn),同一個(gè)key居然存在兩次。

原因:json會(huì)將數(shù)值key轉(zhuǎn)換為unicode

結(jié)論:使用json時(shí)字典key不可以為數(shù)值類型



unity使用Newtonsoft.Json的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
嵊州市| 灵宝市| 鸡东县| 太仓市| 屏边| 大竹县| 永德县| 察哈| 宁明县| 汝阳县| 杭州市| 漾濞| 监利县| 光泽县| 汽车| 岑巩县| 株洲县| 桦川县| 青海省| 中超| 平舆县| 新乐市| 屏山县| 林甸县| 郯城县| 曲麻莱县| 焦作市| 深泽县| 梁河县| 吴江市| 南丹县| 山东| 三明市| 汉中市| 陈巴尔虎旗| 仁布县| 固阳县| 东乡县| 江门市| 开江县| 偃师市|