fastjson官網(wǎng) 如何優(yōu)化很長(zhǎng)的JSON數(shù)據(jù)?
如何優(yōu)化很長(zhǎng)的JSON數(shù)據(jù)?目前主流的網(wǎng)絡(luò)請(qǐng)求使用JSON作為數(shù)據(jù)交互格式,主要是因?yàn)镴SON有以下優(yōu)點(diǎn):但是如果在開發(fā)過程中,前端和后端傳輸?shù)腏SON數(shù)據(jù)又長(zhǎng)又大,說明設(shè)計(jì)工作做得不好,而這種數(shù)據(jù)傳
如何優(yōu)化很長(zhǎng)的JSON數(shù)據(jù)?
目前主流的網(wǎng)絡(luò)請(qǐng)求使用JSON作為數(shù)據(jù)交互格式,主要是因?yàn)镴SON有以下優(yōu)點(diǎn):
但是如果在開發(fā)過程中,前端和后端傳輸?shù)腏SON數(shù)據(jù)又長(zhǎng)又大,說明設(shè)計(jì)工作做得不好,而這種數(shù)據(jù)傳輸應(yīng)該盡量避免,但也可以從以下幾個(gè)方面進(jìn)行優(yōu)化:
異步批量加載,建筑設(shè)置大量數(shù)據(jù)導(dǎo)致前端頁面堵塞;
前端增加了銷毀機(jī)制,可以同時(shí)加載和銷毀;
使用具有高解析和壓縮性能的JSON解析工具;
json.parse報(bào)錯(cuò)是怎么回事?
JSON的主要用途是用于服務(wù)器/客戶端簡(jiǎn)單的數(shù)據(jù)交換,而不是用于對(duì)象序列化。例如,不支持引用。如果存在循環(huán)引用,則會(huì)直接報(bào)告錯(cuò)誤。即使可以自定義stringify的行為,也必須自己處理,因此很難有一個(gè)通用的“優(yōu)雅”方法。
注意,對(duì)象.assign不適合做這種事,因?yàn)閷?duì)象.assign這只是一個(gè)簡(jiǎn)單的拷貝。至于getter和prototype等元信息,它在stringify中丟失了,因此只能由代碼本身恢復(fù)。
如果我只寫一個(gè)額外的類,我會(huì)把它作為一個(gè)一般要求JSON.parse文件將得到的普通對(duì)象作為參數(shù)生成對(duì)象,并適當(dāng)?shù)卣{(diào)用類的new和類的組件的對(duì)應(yīng)工廠。不管怎樣,這是一個(gè)很大的麻煩。