使用JSON数组与JSON对象有什么区别?

ant*_*pug 44 arrays json object

使用JSON数组有什么区别和优点:

{
   thing:[
     { },
     { }
   ]
}
Run Code Online (Sandbox Code Playgroud)

与JSON对象:

{
   thing:{
     { },
     { }
   }
}
Run Code Online (Sandbox Code Playgroud)

Jer*_*her 30

听起来不像是一个自作聪明,但是......

array和a 之间的区别object.

对象使用a keyvalue... 设置...

person.age = 15;
Run Code Online (Sandbox Code Playgroud)

如果key值是变量,那么可以像...那样访问它

var key = "age";
alert(person[key]);
Run Code Online (Sandbox Code Playgroud)

数组使用整数[1]索引并取值.

player[1].score += 1000;
Run Code Online (Sandbox Code Playgroud)

[1]是的,我知道......在Javascript中,整数索引实际上变成了幕后的字符串.忽略这一点.当你想到JSON时,可以考虑数组采用整数值.


Dan*_*ite 6

JSON数组表示对象的集合.在JS,那里有一堆收集功能关闭它们如slice,pop,push.对象只有更多的原始数据.


meg*_*odi 6

对象 - 键和值,数组 - 整数.你什么时候使用这个或那个?

我认为数组和对象分别是"a/an"和"has a".让我们以"水果"为例.

水果阵列中的每个项目都是一种水果.

array fruit : [orange, mango, banana]

.数组可以包含对象,字符串,数字,数组,但是我们只处理对象和数组.

array fruit : [orange:[], mango:{}, banana:{}]

.你可以看到橙色也是一个数组.它暗示任何转换为​​橙色的项目都是橙色,例如:bitter_orange,mandarin,sweet_orange.

对于水果对象,其中的任何项目都是水果的属性.因此水果有一个

object fruit :{seed:{}, endocarp:{},flesh:{}}
Run Code Online (Sandbox Code Playgroud)

这也意味着种子对象中的任何东西都应该是种子的属性,比如:color,

  • 这是一个完美的解释。 (2认同)

Mik*_*ant 5

您显示的第二种形式实际上不是有效的JSON,因为“事物”对象中的每个对象都需要某种排序或属性名称来访问它。

要回答您的问题,不同之处在于,在第一种情况下,您将使用数组访问(例如obj.thing[0]或)访问“事物”中的对象obj.thing[1]。在第二种情况下,如果您有正确的属性声明,则可以像obj.thing.property

通常在JSON数组中用于存储相似项的分组,而对象用于对单个项包含不同属性的分组。