pako.js实现json的压缩和解压

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>pako.js实现gzip的压缩和解压</title>
</head>
<body>
<script type="text/javascript" src="pako.min.js"></script>
<script >
var data='[{"_id":"5f72ff11d63eccf2f370da97","index":0,"guid":"a4bd3ff8-006a-4799-b95d-9e4c18e95f2d","isActive":true,"balance":"$1,280.19","picture":"http://placehold.it/32x32","age":28,"eyeColor":"blue","name":"Nona Woodward","gender":"female","company":"FRANSCENE","email":"nonawoodward@franscene.com","phone":"+1 (838) 515-3463","address":"255 Kings Place, Moscow, North Dakota, 8840","about":"Elit cillum excepteur cupidatat mollit aute nostrud. Laborum culpa enim pariatur proident et commodo anim irure officia ea. Magna est est aliquip irure ea exercitation labore ex deserunt ad cupidatat eu eiusmod qui. Esse dolore fugiat exercitation et quis consequat tempor culpa aliquip. Occaecat consectetur nostrud anim labore amet in occaecat. Sit ea cupidatat duis cupidatat. Occaecat id laboris enim aute dolor.\r\n","registered":"2017-12-15T07:40:36 -08:00","latitude":84.824307,"longitude":114.555549,"tags":["voluptate","qui","laborum","id","labore","elit","veniam"],"friends":[{"id":0,"name":"Winnie Newton"},{"id":1,"name":"Kelly Hayes"},{"id":2,"name":"Essie Farmer"}],"greeting":"Hello, Nona Woodward! You have 2 unread messages.","favoriteFruit":"apple"},{"_id":"5f72ff114a2b85c7ec410d1f","index":1,"guid":"cdb03256-e83f-4ee1-8f57-e6ee903a06db","isActive":true,"balance":"$2,241.86","picture":"http://placehold.it/32x32","age":40,"eyeColor":"brown","name":"Harrison Combs","gender":"male","company":"MOBILDATA","email":"harrisoncombs@mobildata.com","phone":"+1 (948) 458-3593","address":"898 Euclid Avenue, Selma, District Of Columbia, 5548","about":"Exercitation aliquip voluptate duis nostrud in sint eiusmod dolor fugiat ut excepteur. Amet sit do sit occaecat consectetur nostrud consequat reprehenderit velit voluptate ad officia sunt. Enim mollit anim aliqua in reprehenderit nulla mollit sint velit nulla irure cupidatat. Adipisicing irure non magna est sunt qui excepteur enim officia dolore aute aliquip tempor culpa. Deserunt ad aute duis reprehenderit officia veniam. Aliquip occaecat pariatur esse veniam.\r\n","registered":"2017-11-28T12:00:19 -08:00","latitude":26.409669,"longitude":14.734414,"tags":["incididunt","esse","tempor","elit","aliqua","est","do"],"friends":[{"id":0,"name":"Neal Pearson"},{"id":1,"name":"Robbins Burgess"},{"id":2,"name":"Patrick Parker"}],"greeting":"Hello, Harrison Combs! You have 9 unread messages.","favoriteFruit":"strawberry"},{"_id":"5f72ff11465a50de08b77765","index":2,"guid":"91f19798-ae6a-4457-b5b7-2ed0ea5ae0b1","isActive":false,"balance":"$3,872.88","picture":"http://placehold.it/32x32","age":39,"eyeColor":"brown","name":"Rhonda Hughes","gender":"female","company":"GEEKFARM","email":"rhondahughes@geekfarm.com","phone":"+1 (813) 569-3797","address":"332 Jackson Place, Chemung, Virginia, 3774","about":"Exercitation minim excepteur commodo quis exercitation id commodo deserunt laborum incididunt eu exercitation occaecat labore. Exercitation cupidatat esse irure veniam est officia dolore anim in et est minim quis sit. Fugiat irure dolor ut velit occaecat velit minim. Sunt adipisicing eu laboris aute labore cillum sint irure ex.\r\n","registered":"2016-08-06T10:17:11 -08:00","latitude":-73.849002,"longitude":-113.057971,"tags":["in","laboris","excepteur","ut","sunt","nulla","fugiat"],"friends":[{"id":0,"name":"Knowles Duffy"},{"id":1,"name":"Samantha Bass"},{"id":2,"name":"Gracie Mcgowan"}],"greeting":"Hello, Rhonda Hughes! You have 9 unread messages.","favoriteFruit":"strawberry"},{"_id":"5f72ff11f70bdbf7d6bd291a","index":3,"guid":"b5424ad8-51a7-4807-ad9a-0f607dacb50e","isActive":true,"balance":"$3,816.33","picture":"http://placehold.it/32x32","age":38,"eyeColor":"green","name":"Collier Holmes","gender":"male","company":"EQUITOX","email":"collierholmes@equitox.com","phone":"+1 (956) 416-3321","address":"488 Dorset Street, Homestead, Pennsylvania, 3904","about":"Pariatur esse mollit ut velit veniam dolor est velit adipisicing fugiat pariatur. Ipsum eiusmod dolor duis proident Lorem quis laborum incididunt laborum fugiat duis veniam enim quis. Pariatur est voluptate nostrud laborum nulla non anim ea ea cupidatat laboris anim. Duis qui tempor consectetur non non officia magna incididunt. Officia deserunt consequat aliquip elit minim ad cillum eu exercitation consequat. In laborum consequat eu dolor qui non incididunt exercitation incididunt labore laborum minim nulla. Nulla commodo commodo sunt enim culpa.\r\n","registered":"2020-05-22T07:06:25 -08:00","latitude":-6.726107,"longitude":-42.429247,"tags":["cillum","aliquip","quis","velit","esse","do","fugiat"],"friends":[{"id":0,"name":"Alta Peck"},{"id":1,"name":"Holloway Frost"},{"id":2,"name":"Ramona Armstrong"}],"greeting":"Hello, Collier Holmes! You have 8 unread messages.","favoriteFruit":"apple"},{"_id":"5f72ff1172cd17405d02249d","index":4,"guid":"597f4a61-467e-4b35-8f9a-327c826cf1d8","isActive":false,"balance":"$1,762.27","picture":"http://placehold.it/32x32","age":28,"eyeColor":"green","name":"Natalie Chavez","gender":"female","company":"SENSATE","email":"nataliechavez@sensate.com","phone":"+1 (822) 563-2945","address":"344 Ruby Street, Muir, Tennessee, 2927","about":"Adipisicing exercitation do velit ex. Mollit dolore anim cillum reprehenderit excepteur quis pariatur minim et cupidatat dolore labore ex ad. Ea proident cupidatat in reprehenderit anim. Dolore minim laboris irure consectetur ut adipisicing id culpa duis proident dolore ullamco ea. Incididunt nulla non ad ex laborum irure sunt duis ut culpa ipsum anim incididunt.\r\n","registered":"2014-05-21T01:11:53 -08:00","latitude":-50.43618,"longitude":55.041786,"tags":["qui","nostrud","culpa","cillum","in","ea","id"],"friends":[{"id":0,"name":"Ora Harrison"},{"id":1,"name":"Wright Daugherty"},{"id":2,"name":"Deleon Haney"}],"greeting":"Hello, Natalie Chavez! You have 9 unread messages.","favoriteFruit":"apple"},{"_id":"5f72ff113c3c156bbf16719e","index":5,"guid":"90f65d60-7576-442c-b159-465f1042c81e","isActive":true,"balance":"$1,140.76","picture":"http://placehold.it/32x32","age":30,"eyeColor":"blue","name":"Mcdowell Stephens","gender":"male","company":"JOVIOLD","email":"mcdowellstephens@joviold.com","phone":"+1 (944) 520-2441","address":"184 Decatur Street, Taft, Guam, 2465","about":"Sint nisi ea duis adipisicing sint do eu Lorem consectetur nisi nostrud sunt proident elit. Nisi irure aliqua duis irure dolor occaecat incididunt ea tempor elit cupidatat incididunt labore. Amet consequat sunt aute reprehenderit esse do laboris tempor commodo laboris. Ullamco labore qui ut eiusmod in sunt id do.\r\n","registered":"2014-08-24T01:05:22 -08:00","latitude":-69.582077,"longitude":63.264413,"tags":["voluptate","mollit","nostrud","amet","aliquip","ex","irure"],"friends":[{"id":0,"name":"Hancock Schwartz"},{"id":1,"name":"Martina Myers"},{"id":2,"name":"Gabrielle Hodge"}],"greeting":"Hello, Mcdowell Stephens! You have 2 unread messages.","favoriteFruit":"strawberry"},{"_id":"5f72ff11e833a15aa4f76b2f","index":6,"guid":"38cb1780-9090-470a-9f37-2d4dfaa4154a","isActive":false,"balance":"$1,052.70","picture":"http://placehold.it/32x32","age":22,"eyeColor":"brown","name":"Jillian Love","gender":"female","company":"EYEWAX","email":"jillianlove@eyewax.com","phone":"+1 (863) 566-3175","address":"469 Montague Street, Clayville, Louisiana, 3250","about":"Veniam labore quis qui officia. Fugiat ipsum reprehenderit nisi quis sunt dolor irure minim sit velit Lorem tempor qui. Aute reprehenderit laboris fugiat et laborum sunt do commodo id sit sint ex aliqua. Aliqua in irure fugiat amet veniam magna minim. Ex aute esse ullamco deserunt anim Lorem dolor magna enim ullamco et non.\r\n","registered":"2018-06-22T11:47:49 -08:00","latitude":-19.944768,"longitude":36.102547,"tags":["qui","commodo","officia","labore","do","amet","laboris"],"friends":[{"id":0,"name":"Nola Flores"},{"id":1,"name":"Vilma Foley"},{"id":2,"name":"Latoya Mcgee"}],"greeting":"Hello, Jillian Love! You have 7 unread messages.","favoriteFruit":"strawberry"}]';
// Output to console
var zipdata = zip(data);
console.log("压缩后:");
console.log(zipdata);

var unzipdata = unzip(zipdata);
console.log("解压后:");
console.log(unzipdata);

function zip(str){
  var binaryString = pako.gzip(str, { to: 'string' })
  return btoa(binaryString)
}
function unzip(str) {
  var strData = atob(str)
  // Convert binary string to character-number array
  var charData = strData.split('').map(function(x) { return x.charCodeAt(0) })
  // Turn number array into byte-array
  var binData = new Uint8Array(charData)
  // // unzip
  var data = pako.inflate(binData)
  // Convert gunzipped byteArray back to ascii string:
  strData = String.fromCharCode.apply(null, new Uint16Array(data))
  return strData
}

</script>
</body>
</html>

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值