当以JSON或XML格式将大量柱状数据从Web服务器传输到浏览器时,每行都会不必要地重复列名。我必须转移的基本上是CSV格式 - 即。多行数据,每行都有相同的字段顺序。
例如,在XML中我将转移:
<row>
<name>Frank</name>
<city>New York</city>
</row>
<row>
<name>Brian</name>
<city>Jerusalem</city>
</row>
etc..
与JSON相同,字段名称会不必要地重复,无缘无故会成为很多额外的字节。
我的问题是,是否有其他标准格式,Javascript和/或.NET中的库支持,我可以使用它来更有效地传输这种类似“CSV”的数据集?
答案 0 :(得分:1)
除非你在谈论很多数据,否则它可能并不重要(带宽很便宜,或者我听说过)。但是,如果您尝试将尽可能多的数据压缩到可用带宽中,则可以选择。
您可以使用任何您想要的格式(XML,JSON),然后压缩它。例如,您可以使用JSZip。优点:您不必转换基本数据结构。
此外,如果这种格式对您的应用程序最有意义,那么没有什么可以阻止您使用CSV。最好使用像jquery-csv这样的库来处理正确引用字符串等烦恼。缺点:这不是真正的压缩;只是一种没有大量开销的格式。
所有事情都告诉我,我可能会采用第一种方法。
答案 1 :(得分:0)
我猜你的json格式如下:
[
{
"name": "Frank",
"city": "New York"
},
{
"name": "Brian",
"city": "Jerusalem"
}
]
为什么不简单地将其更改为:
[
["name", "city"],
["Frank", "New York"],
["Brian", "Jerusalem"]
]
答案 2 :(得分:0)
通过XML从Flash(在客户端上运行,类似于JavaScript)和.NET(显然在服务器上运行)传输大量数据时,我遇到了类似的问题
我最终使用的方法是;
XML > string without whitespace > zip compress > base64 encoded
然后在另一边,反过来。
在你的情况下,你可以这样做;
CSV > string > zip > base64
从记忆中,我能够获得一些非常大的有效载荷(约2mb),低于50kb