通过替换常用字符串来压缩 JSON
Compressing JSON by replacing often used Strings?
我当时使用JSON并保存了一些数据。由于我可以通过替换常用的字符串来节省大量空间,因此我想知道是否有任何算法可以做到这一点。我更喜欢Javascript,因为我使用JavaScript和NodeWebkit,但是知道是否存在这样的东西会很好。因为我使用NodeWebkit执行此操作,所以数据存储到客户端计算机,所以我没有服务器可以与之通信。此外,它必须是一个独立的应用程序,所以我不应该使用外部程序。
我想从中得到:
{
"Attribute1" : "This is my very long string",
"Attribute2" : "This is my very long string",
"Attribute3" : {
"innerObjectAttribute": "This string contains the word Attribute"
}
}
对象如下:
{
"$$1" : "Attribute",
"$$2" : "This is my very long string",
"data": {
"$$11" : "$$2",
"$$12" : "$$2",
"$$13" : {
"innerObject$$1" : "This string contains the word $$1"
}
}
}
在这个例子中,算法已经可以节省空间(没有空格),但是想象一下你多次使用长词或路径的一部分(我这样做)的情况 - 在我的情况下它可以节省很多(!!)空间。
我的旧 JSON 对象刚刚保存在 data
属性下,所有被替换的字符串都在此之前并具有自己的属性 - 但在整个 JSON 文件中只有一次。
当用户使用像 $$1 这样的字符串时,它们的问题应该由算法本身来考虑。
我想用解析/撤消函数取回我的输入 JSON 字符串。有人可以在这里帮忙吗?
最简单的
形式是每个基于字典的压缩(gzip,zip,deflate)的想法。几乎每个Web服务器都有一个gzip/defalte模块,只是激活它,gzip/deflate压缩是在HTTP中指定的。优点是 gzip 比你的方法更诡辩,并且是透明的,并且只有在客户端可以解压缩它的情况下(几乎每个 http 客户端都可以)
示例请求如下所示:
GET /encrypted-area HTTP/1.1
Host: www.example.com
Accept-Encoding: gzip, deflate
响应
HTTP/1.1 200 OK
...
Accept-Ranges: bytes
Content-Length: 438
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- three.js JSON文件压缩
- Json压缩传输
- 如何在浏览器中压缩json请求数据
- 在服务器上压缩JSON消息,在客户端解压缩
- 重组和压缩 JSON 对象
- 在服务器端压缩 JSON
- 通过替换常用字符串来压缩 JSON
- 如何压缩 JSON 响应
- 大 JSON 文件 - 如何在服务器中压缩并在客户端解压缩
- 压缩 JSON 字符串?(以及一般的字符串)
- 在 PHP 中压缩 JSON 响应
- 为JSON上的数据传输选择合适的压缩方案
- 使用MQTT.js发送压缩JSON
- 如何从JavaScript文件中正确解压缩编码为JSON的PHP数组中的数据
- 从rest node.js压缩json数据使用express压缩
- 使用Javascript下载并读取压缩后的JSON数据
- 我如何发送压缩(gzip) JSON作为响应Ajax请求,从Java