2011-06-24 97 views
1

我當前的項目通過ajax請求向JSON中的瀏覽器發送大量數據。使用gzip壓縮的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

我建議使用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] 
] 
} 
0

實例1的第二位不應該是「rowname1」等等嗎?我沒有真正得到例子2,所以我想我會把你的目標瞄準爲1.有很多事情要說,讓數據立即可用,而無需事先處理它。理由:我曾經花費太長時間來優化陣列系統,結果證明它完美地工作,但它現在更新它的地獄。