我从移动应用程序(最多 1000 个 JSON 对象)提交了相对大量的数据,我通常会像这样编码:
[{
id: 12,
score: 34,
interval: 5678,
sub: 9012
}, {
id: ...
}, ...]
我可以通过提交数组数组来减小有效负载:
[[12, 34, 5678, 9012], [...], ...]
在属性名称上节省一些空间,并在服务器上重新创建对象(因为模式是固定的,或者至少它是服务器和客户端之间的合同)。
然后在POST
请求中提交有效负载,很可能通过 3G 连接(或可能是 wifi)。
看起来我通过使用嵌套数组节省了一些带宽,但我不确定应用gzip时它是否明显,我不确定如何精确和客观地测量差异。
另一方面,嵌套数组感觉不是一个好主意:它们的可读性较差,因此在调试时更难发现错误。此外,由于我们将可读性冲到马桶上,我们可以将数组展平,因为每个子数组都有固定数量的元素,服务器可以将其切分并再次重建对象。
非常感谢有关此主题的任何进一步阅读材料。