我正在构建一个php Web服务,它使用JSON与智能手机应用程序进行通信。
我们发送给客户端的数据看起来有点像这样:
{
"events":[
{
"event_id": 1,
"event_name": "Event 1",
"event_location_id": 1450,
"event_timestamp": 1367515800
},
{
"event_id": 2,
"event_name": "Event 2",
"event_location_id": 131,
"event_timestamp": 1367515801
},
ETC......
]
}
我们发送给客户端的整个json数据块目前总共大约1mb,并且可能会变大。在我看来,大多数这些数据都是一遍又一遍重复的相同对象字段名称,这对我来说似乎是多余的。
如果我要以下面稍微不同的格式发送完全相同的数据,我估计我们只会发送大约20%的数据:
{
"events": {
"fields":["event_id", "event_name", "event_location_id", "event_timestamp"],
"items":[
[1, "Event 1", 1450, 1367515800],
[2, "Event 2", 131, 1367515801],
ETC........
]
}
}
我很惊讶我在网上找不到任何关于此的内容,有没有其他人尝试过以这种方式构建他们的JSON?对于小得多的数据量,服务器上的额外处理是否值得权衡?是否有任何数据压缩通常在幕后发生,使这些考虑无关紧要?
答案 0 :(得分:1)
有关你提到的不同格式的OData博客文章。但是,看起来它没有得到实施。
http://www.odata.org/blog/an-efficient-format-for-odata/
不同的格式也证明了更有效的CPU智能
http://mailinglist.odata.org/scripts/wa-ODATA.exe?A2=ind1103&L=ODATA&D=0&P=79521
我也很困惑,为什么不采用这种格式。
答案 1 :(得分:1)