JavaScript-javascript压缩json数据的方法?

发布于 2016-10-17 08:05:05 字数 88 浏览 1883 评论 4

前台通过AJAX请求将json数据提交到后台缓存,由于内存有限。需要减少json数据的大小。
在不改变原有数据结构的情况下JS有方法能压缩json数据?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

灵芸 2017-08-15 18:04:53

给你个js封装压缩解压数据的方法:

//压缩
function lzw_encode(s) {
var dict = {};
var data = (s + "").split("");
var out = [];
var currChar;
var phrase = data[0];
var code = 256;
for (var i=1; i<data.length; i++) {
currChar=data[i];
if (dict[phrase + currChar] != null) {
phrase += currChar;
}
else {
out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
dict[phrase + currChar] = code;
code++;
phrase=currChar;
}
}
out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
for (var i=0; i<out.length; i++) {
out[i] = String.fromCharCode(out[i]);
}
return out.join("");
}

//解压
function lzw_decode(s) {
var dict = {};
var data = (s + "").split("");
var currChar = data[0];
var oldPhrase = currChar;
var out = [currChar];
var code = 256;
var phrase;
for (var i=1; i<data.length; i++) {
var currCode = data[i].charCodeAt(0);
if (currCode < 256) {
phrase = data[i];
}
else {
phrase = dict[currCode] ? dict[currCode] : (oldPhrase + currChar);
}
out.push(phrase);
currChar = phrase.charAt(0);
dict[code] = oldPhrase + currChar;
code++;
oldPhrase = phrase;
}
return out.join("");
}

夜无邪 2017-03-13 04:38:59

1:服务器端开启gzip.
2:调整传输的JSON格式:如 data = [{name:'deng',des:'info',length:30,value:'wo'}...]改:data = {key:{name:1,desc:2},data:[['test','info']]},主要用来减少数据集中重复键值。

清晨说ぺ晚安 2017-01-16 07:15:07

用gzip去压缩,前端解压就可以了。

灵芸 2016-11-10 19:42:55

介绍我们使用的压缩解压算法,js实现。

使用方法1(解压):
http://www.onicos.com/staff/iz/amuse/javascript/expert/inflate.txt

1、利用服务器端的程序将数据压缩,最好是加上base64编码这样可以取到ascii文本,这样就可以方便跟网页的其他源码混在一起。
2、在客户端取到数据后用js的函数解压,就可以作后续使用。
3、使用角度:主要是轻度的加密:一般人要解开这些东西,比较麻烦。
4、注意:一、这个办法和服务器自动压缩不同,自动压缩在客户端可以很方便地看到源码;二、如果不是为了加密而是压缩,那内容最好是大于1000字节,否则可能达不到什么压缩的效果。

使用方法2(压缩):
http://www.onicos.com/staff/iz/amuse/javascript/expert/deflate.txt

1、首先把数据用js函数压缩,然后转换成base64代码。
2、传到服务器用程序解开,这些都是废话了。
3、使用角度:把客户端提交的表单和数据先压缩了,然后上传到服务器,因为现在的服务器端压缩技术都不会支持上传压缩,所以此项技术有实用价值,额外的还可以实现上传数据轻度加密。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文