這篇文章主要介紹了如何縮小json文件,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
十多年的大通網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整大通建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“大通網(wǎng)站設(shè)計(jì)”,“大通網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。一.優(yōu)化數(shù)據(jù)的結(jié)構(gòu)
想要文件體積減小,優(yōu)先考慮的應(yīng)該是如何將文件所需要存儲(chǔ)的數(shù)據(jù)量降低。需要做的是討論最小可行的一個(gè)結(jié)構(gòu),將不需要的字段去除,將其中單詞,代碼進(jìn)行縮減。
二.不要讓json中文轉(zhuǎn)碼
在調(diào)用PHP的json_encode()函數(shù)的時(shí)候,會(huì)將中文進(jìn)行編碼Unicode,在正常情況下來(lái)看,這個(gè)可能是除了使生成的json串可讀性降低了而已,不過(guò)在這種特殊情況下,也不能忽略由于編碼,而造成的額外大量的體積開銷。不進(jìn)行編碼的話,會(huì)讓文件縮小很多。
本次講解,用以下函數(shù)就夠。
function jsonEncode($da) { return urldecode(json_encode(arrUrlencode($da))); } function arrUrlencode($da) { if(is_array($da)){ foreach($da as $k => $v) { if(is_array($v)){ $da[$k] = arrUrlencode($v); }elseif(is_string($v) && !is_numeric($v)) { $da[$k] = urlencode($v); } } } return $da; }
三.采用壓縮的算法
現(xiàn)在常見的json壓縮算法有CJSON與HPack,其原理都是將key和value進(jìn)行抽離,節(jié)省掉部分的重復(fù)的key值造成的空間消耗。此次中我用到的是CJSON算法。
HPack的基本是將key值抽離出來(lái),被提取前和提取后的數(shù)據(jù)示例如下,看起來(lái)更像是表格化了,是不是很簡(jiǎn)單:
# 提取前[ {name: "Lam", age: 18, gender: "男", hobit: "看書"}, {name: "Lee" , age: 20, gender: "女", hobit: "跳舞"}, ]# 壓縮后[ ["name", "age", "gender", "hobit"], ["Lam", 18, "男", "看書"], ["Lee", 20, "女", "跳舞"], ]
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享如何縮小json文件內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián)建站,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!