我正在从移动应用程序(最多1000个JSON对象)提交相对大量的数据,通常我会像这样编码:

[{
    id: 12,
    score: 34,
    interval: 5678,
    sub: 9012
}, {
    id: ...
}, ...]

我可以通过提交数组数组来减小有效负载:
[[12, 34, 5678, 9012], [...], ...]

以便在属性名称上节省一些空间,并在服务器上重新创建对象(由于架构是固定的,或者至少是服务器与客户端之间的契约)。

然后以POST请求的形式提交有效负载,最有可能通过3G连接(或可能是wifi)提交。

看起来我通过使用嵌套数组节省了一些带宽,但是我不确定应用gzip时它是否值得注意,并且我不确定如何精确,客观地测量差异。

另一方面,嵌套数组并不是一个好主意:它们的可读性较低,因此在调试时更难发现错误。另外,由于我们正在冲洗厕所,因此我们可以将数组弄平,因为每个子数组都有固定数量的元素,服务器可以将其切成薄片并再次重建对象。

非常感谢您阅读有关该主题的任何进一步阅读 Material 。

最佳答案

JSONH,又名hpack,https://github.com/WebReflection/JSONH与您的示例非常相似:

[{
    id: 12,
    score: 34,
    interval: 5678,
    sub: 9012
}, {
    id: 98,
    score: 76,
    interval: 5432,
    sub: 1098
}, ...]

会变成:
[["id","score","interval","sub"],12,34,5678,9012,98,76,5432,1098,...]

关于json - 尝试减少JSON大小值得付出努力吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11160941/

10-09 22:44