Javascript json数组v json对象-优缺点

Javascript json数组v json对象-优缺点,javascript,html,json,Javascript,Html,Json,目前,我们有一个AJAX驱动的站点,它以以下格式返回JSON响应:[{“n”:“bob”},{“n”:“jim”},…,{“n”:“alex”}]。基本上是一个json对象数组。 然而,我们正在考虑这样构造它:[[“bob”],[“jim”],…,[“alex”]]。基本上是一组数组。 明显的区别是,我们不是通过属性访问数据,而是通过假定的索引位置(即数组[0]==name)访问数据,但除此之外,我很好奇每种方法的优缺点是什么。有趣的因素:客户端的性能(构建数据结构和检索数据结构的值)、带宽

目前,我们有一个AJAX驱动的站点,它以以下格式返回JSON响应:
[{“n”:“bob”},{“n”:“jim”},…,{“n”:“alex”}]
。基本上是一个json对象数组。

然而,我们正在考虑这样构造它:
[[“bob”],[“jim”],…,[“alex”]]
。基本上是一组数组。


明显的区别是,我们不是通过属性访问数据,而是通过假定的索引位置(即数组[0]==name)访问数据,但除此之外,我很好奇每种方法的优缺点是什么。有趣的因素:客户端的性能(构建数据结构和检索数据结构的值)、带宽(显然是在更大的数据集上或对于较慢的互联网连接,比如移动设备),设计模式/最佳实践,其他人如何设计他们的响应,等等。

数组方法将阻止您使用有意义的索引名,因此我将使用JSON对象。您还会发现,大多数编程语言都有很好的库来创建JSON输出

除非您处理的是非常大的数据集,否则我认为阵列方法不会提供任何明显的性能优势。

  • 使用数组格式的对象时,可以为每个项加载更多数据,而不仅仅是
    n

    [{
            'name' : 'John',
            //more data about john
    },{
            'name' : 'Joe',
            //more data about joe
    }]
    //myArray[0].name = John
    
  • 使用数组时,假定返回的数据类型相同

    ['John','Joe'...] //all names
    //myArray[0] = John
    
但这一切都归结为如何解析数据


构建如下数据:

[["bob"], ["jim"], ..., ["alex"]]

这是完全错误的。为什么要把名字放在一个数组里,放在一个名字数组里?第二个层次是什么?

这个问题不够精确,答案有一种“明显”的味道。那就
['bob','jim','alex']
?“假定索引位置”-你已经回答了自己的问题,为什么这通常是个坏主意。@neoascetic这只是一个非常基本的例子。假设列表中有不止一个变量。@deceze在…方面是个坏主意吗。。。?设计?演出我只是陈述了一个明显的结果,但不确定它与我感兴趣的任何因素有何关系:)对不起,我只是想举一个简单的例子来避免混淆。如果你更喜欢一个更复杂的例子,假设列表中的每个项目都不只是一个名字,可能是一个人的整个档案数据。@paulsmith那么数组中的对象(我答案中的第一个示例)将是一个更安全的解决方案。是的,从可读性的角度来看,JSON对象方法更好。但是你是说数组实际上比对象快吗?如果是,在什么方面?通道解析?记忆?