我目前正在開發一個Web應用程序並使用JSON來處理Ajax請求和響應。我有一個區域,我以超過10000個對象的數組的形式將一個非常大的數據集返回給客戶端。這裏的例子(其已經有所簡化)的一部分:如何讓我的JSON少冗長?
"schedules": [
{
"codePractice": 35,
"codeScheduleObject": 576,
"codeScheduleObjectType": "",
"defaultCodeScheduleObject": 12,
"name": "Dr. 1"
},
{
"codePractice": 35,
"codeScheduleObject": 169,
"codeScheduleObjectType": "",
"defaultCodeScheduleObject": 43,
"name": "Dr. 2"
},
{
"codePractice": 35,
"codeScheduleObject": 959,
"codeScheduleObjectType": "",
"defaultCodeScheduleObject": 76,
"name": "Dr. 3"
}
]
如,你可以想像,有一個非常大的數字在這個數組中的對象,該JSON效應初探規模可能相當大。
我的問題是,是否有一個JSON stringifier /解析器將在"schedules"
數組轉換成這個樣子的JSON字符串:
"schedules": [
["codePractice", "codeScheduleObject", "codeLogin", "codeScheduleObjectType", "defaultCodeScheduleObject","name"],
[35, 576, "", 12, "Dr. 1"],
[35, 169, "", 43, "Dr. 2"],
[35, 959, "", 76, "Dr. 3"],
]
即會有之初的數組該數組保存了該數組中對象的鍵,並且所有其他容器數組都將保存這些值。
我可以,如果我想,做服務器上的轉換並解析它在客戶端上,但我想知道是否有標準庫解析/字符串化大型JSON?
我也可以通過縮小器來運行它,但是我想保留當前的鍵,因爲它們在應用程序中給出了一些上下文。
我也希望你可以批評我的方法在這裏或建議的替代品?
嘗試在您的服務器上使用gzip功能,甚至嘗試通過PHP對jz響應進行gzip壓縮(並將其與特殊頭文件一起發送)。 – silex 2011-05-25 21:24:47
謝謝,但我已經在使用gzip。 – 2011-05-25 21:26:46
我會保持模式和數據分離(例如'{schema :, data:}') - 但是否則我認爲它是有效的。我不確定任何現有的庫。但是,在GZIP之後,它會帶來巨大的節約嗎?我不確定,但部分懷疑它是因爲存在的重要名稱重複*。嘲笑一個測試案例(正常與正常+ GZIP與假設模式或假設模式+ GZIP)將是檢查這種方法的潛在優點的好的第一步。 – 2011-05-25 21:29:59