使用gzip压缩的JSON格式

时间:2011-06-24 11:48:04

标签: json gzip

我当前的项目通过ajax请求以JSON方式向浏览器发送大量数据。

我一直在努力决定使用哪种格式。我想到的两个是

[
    "colname1" : "content",
    "colname2" : "content",
],
[
    "colname1" : "content",
    "colname2" : "content",
],  
...

{
"columns": [
    "column name 1", 
    "column name 2", 
], 
"rows": [
    [
        "content", 
        "content"
    ], 
    [
        "content", 
        "content"
    ]
    ...
]

}

第一种方法更好,因为它更容易使用。我只需要在收到后转换为对象。第二个将需要一些后期处理将其转换为更像第一个的格式,以便在JavaScript中更容易使用。

第二种更好,因为它不那么冗长,因此带宽更少,下载速度更快。在压缩之前,它通常在第一种格式的0.75%和0.85%之间。

GZip压缩使事情进一步复杂化。使文件大小差异接近0.85%至0.95%

我应该采用哪种格式?为什么?

2 个答案:

答案 0 :(得分:2)

我建议使用RJSON

  

RJSON(递归JSON)将任何JSON数据集合转换为更紧凑的递归形式。压缩数据仍然是JSON,可以使用JSON.parse进行解析。 RJSON不仅可以压缩同类集合,还可以压缩任何具有自由结构的数据集。

示例:

JSON:

{
"id": 7,
"tags": ["programming", "javascript"],
"users": [
    {"first": "Homer", "last": "Simpson"},
    {"first": "Hank", "last": "Hill"},
    {"first": "Peter", "last": "Griffin"}
],
"books": [
    {"title": "JavaScript", "author": "Flanagan", "year": 2006},
    {"title": "Cascading Style Sheets", "author": "Meyer", "year": 2004}
]
}

RJSON:

{
"id": 7,
"tags": ["programming", "javascript"],
"users": [
    {"first": "Homer", "last": "Simpson"},
    [2, "Hank", "Hill", "Peter", "Griffin"]
],
"books": [
    {"title": "JavaScript", "author": "Flanagan", "year": 2006},
    [3, "Cascading Style Sheets", "Meyer", 2004]
]
}

答案 1 :(得分:0)

不应该是示例1的第二位是" rowname1" ..等等?我真的不会得到示例2所以我想我会瞄准你1.尽管没有事先对其进行预处理,但数据可以立即使用还有很多要说的。理由:我曾经花了太长时间来优化阵列系统,结果却完美无缺,但它现在要更新它。