将大型数据集传递给客户端-Javascript数组还是JSON?

将大型数据集传递给客户端-Javascript数组还是JSON?,javascript,json,dataset,Javascript,Json,Dataset,我正在向客户机传递一个多达1000行的表,其中包括名称、ID、纬度和经度值 然后,该列表将由Javascript处理,并转换为谷歌地图上的标记 我最初计划用JSON来实现这一点,因为我希望代码可读性好,易于处理,而且随着时间的推移,我们可能会向它添加更多的结构 但是,我的同事建议将其作为Javascript数组传递,因为这样可以大大减小大小 这让我想,也许JSON有点多余。毕竟,对于定义的每一行,每个字段的名称也会重复输出。然而,对于数组,单元格的位置用于指示字段 但是,使用阵列真的能提高性能吗

我正在向客户机传递一个多达1000行的表,其中包括名称、ID、纬度和经度值

然后,该列表将由Javascript处理,并转换为谷歌地图上的标记

我最初计划用JSON来实现这一点,因为我希望代码可读性好,易于处理,而且随着时间的推移,我们可能会向它添加更多的结构

但是,我的同事建议将其作为Javascript数组传递,因为这样可以大大减小大小

这让我想,也许JSON有点多余。毕竟,对于定义的每一行,每个字段的名称也会重复输出。然而,对于数组,单元格的位置用于指示字段

但是,使用阵列真的能提高性能吗

该站点使用GZIP压缩。这种压缩是否有效,足以处理JSON字符串中的任何冗余

[编辑]

我意识到JSON只是一种符号

但我真正的问题是——从性能角度看,什么符号是最好的

如果我使用完全命名的属性,那么我可以得到如下代码:

var x = resultset.rows[0].name;
但如果我不这样做,它的可读性就会降低,比如:

var x = resultset.rows[0][2];
我的问题是——为了提高性能,牺牲代码可读性是否值得?还是不


进一步说明:

根据维基百科,Deflate压缩算法(由gzip使用)执行“重复字符串消除”

如果这是正确的,我没有理由担心JSON中的任何冗余,因为它已经被处理好了。

JSON只是一个符号(Javascript对象符号),包括JS数组——即使名称中有“Object”一词

请参见其语法,其中定义了如下数组(引用):

数组是数组的有序集合 价值观数组以
[
开头(左 括号)并以
]
结尾(右 括号)。值之间用
(逗号)

这意味着这(取自)将是有效的JSON:

[ 100, 500, 300, 200, 400 ]
即使它没有包含、声明或任何对象


在您的情况下,我想您可以使用一些数组,按位置而不是按名称存储数据

如果您担心数据的大小,您可以自己在服务器端“压缩”数据,然后在客户端对其进行反压缩——但我不会这么做:这意味着您在客户端需要更多的处理时间/处理能力


我更愿意使用gzip压缩包含数据的页面:您无需做任何事情,它是完全自动的,而且工作正常——而且大小上的差异可能不会明显。

我建议使用简单的CSV格式。这是一个很好的例子,他们在这里谈论了自己处理此类问题的经验。但最好是自己尝试。

压缩不会完全省略重复的字符串,它只是有效地表示它。如果从一开始就没有重复的字符串,它会更小。请注意,JSON只是JavaScript的一个子集,JavaScript数组只是JSON的一个子集。您真正想知道的是,是将数据存储为数组还是JSON中的对象。@Marius:否。JSON是JavaScript的子集,而不是JavaScript的子集。这是有效的JavaScript,但不是有效的JSON:
[foobar]