压缩JSON字符串? (和一般的字符串)

时间:2016-01-17 14:56:25

标签: javascript json node.js

如何压缩非常大的JSON字符串以通过websockets进行传输? (后来也存储在localStorage中)

它已经缩小了,但是我需要一些可以做到这一点的事情:http://www.unit-conversion.info/texttools/compress/(我曾尝试在那里寻找源头并且无法解决这个问题)

1 个答案:

答案 0 :(得分:2)

您可以使用zlib模块使用Node.js压缩任何类型的二进制数据(字符串,缓冲区),无需外部代码。

您可以根据需要使用gzip或deflate压缩算法。

实施例

(从Node.js'网站无耻地窃取)

const zlib = require('zlib')
const input = JSON.stringify({ some: 'json-data' })

zlib.deflate(input, (err, buffer) => {
  if (err) {
    console.log('u-oh')
  }

  // Send buffer as string to client using my imaginary io object
  io.send(buffer.toString('base64'))
})
  

更新:最好只在传输层启用HTTP compression,而不是自行压缩和解压缩数据。