javascript对象与数组对比JSON

时间:2012-10-06 21:53:38

标签: javascript json

尽管有大量的谷歌搜索和拉扯,我不能为我的生活阐明json,对象和数组(在javascript中)之间的区别。下面是我如何使用二维数据容器(害怕在这里使用“数组”,“对象”或“json”)。请告诉我这两个例子是什么?

//first example:
[
    {"record_id":1,"name":"Frank"},
    {"record_id":2,"name":"Sally"}
]

//second example:
{
"countries": 
    [
    {"id":1,"name":"Canada"},
    {"id":2,"name":"Mexico"}
    ],
"states":
    [
    "id":1,"name":"Maine"},
    {"id":2,"name":"Alaska"}
    ]
}

5 个答案:

答案 0 :(得分:55)

JSON是数据结构的表示,它不是对象或数组。

[1,2,3]

是一个数组。

{"foo":"bar"}

是一个对象。

在您的示例中,

[
  {"record_id":1,"name":"Frank"},
  {"record_id":2,"name":"Sally"}
]

是一个对象数组。

{
  "countries": 
    [
      {"id":1,"name":"Canada"},
      {"id":2,"name":"Mexico"}
    ],
  "states":
    [
      {"id":1,"name":"Maine"},
      {"id":2,"name":"Alaska"}
    ]
}

是一个对象,其中包含其他数组和对象。

答案 1 :(得分:7)

JSON JavaScript Object Notation。这只是一种写下JavaScript数据类型的方法。它本身并不是一种数据类型。

请参阅下面的JavaScript数据类型的一些示例,以及创建它们的文字表示法。

例如,可以使用JSON将数据从服务器发送到浏览器,因为JavaScript很容易解析为普通的JavaScript数据结构。

在您的示例中,您使用的是对象列表和对象对象。

这是一个包含3个空对象的列表。

[{}, {}, {}]

这是三个简单记录的列表:

var mylist = [
    {name: 'John', age: 24},
    {name: 'Bill', age: 42},
    {name: 'Jill', age: 18},
    ]

你可以像这样访问它:

mylist[1].name
>>> 'Bill'

mylist[2].age
>>> 18

JavaScript有几种数据类型:

<强>数

1
100
-2000
123.45

<强>字符串

"Hi John"
"Message:\nGo Forth"

<强>布尔

true
false

<强>阵列

[1,2,3]
[]
["a", "b", 123]
["a", "b", 123, [3,4,5]]

<强>对象

{}
{a: 10}
{mylist: [1,2,3], yourlist: [4,5,6]}
{myself: {name: 'me', age: 10}, yourself: {name: 'you', age: 20}}

答案 2 :(得分:5)

您使用{大括号}来声明对象文字

您使用[方括号]来声明数组文字

对象是键名值对的集合。

以下是字符串数组的示例:

var a = [ "one", "two", "three" ];

以下是代表一个人的简单对象的示例:

var personObject = {
    name: 'Joe',
    age: 25,
    hometown: 'New York'        
};

答案 3 :(得分:1)

JSON是一种文本数据交换格式。正如它的名字(“JavaScript Object Notation”)所暗示的那样,它起源于JS;这意味着JSON实际上是语法上有效的JavaScript。换句话说,您可以将JSON字符串直接粘贴到JS代码中。

数组是特殊的对象。它们可以由[]构建。

可以通过{}构建对象。

所以你的例子中有两个JSON字符串,一个代表一个对象Array,第二个代表一个Object,它的属性本身就是Arrays of Objects。

答案 4 :(得分:0)

我相信对象可以拥有方法和属性而数组不能。除非您通过POST

将其作为字符串传递,否则JSON可以在数组不能传递给服务器