javascript对象与数组对比JSON

Oct*_*ent 21 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"}
    ]
}
Run Code Online (Sandbox Code Playgroud)

Gar*_*y G 57

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

[1,2,3]
Run Code Online (Sandbox Code Playgroud)

是一个数组.

{"foo":"bar"}
Run Code Online (Sandbox Code Playgroud)

是一个对象.

在你的例子中,

[
  {"record_id":1,"name":"Frank"},
  {"record_id":2,"name":"Sally"}
]
Run Code Online (Sandbox Code Playgroud)

是一个对象数组.

{
  "countries": 
    [
      {"id":1,"name":"Canada"},
      {"id":2,"name":"Mexico"}
    ],
  "states":
    [
      {"id":1,"name":"Maine"},
      {"id":2,"name":"Alaska"}
    ]
}
Run Code Online (Sandbox Code Playgroud)

是一个包含其他数组和对象的对象.


gah*_*ooa 7

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

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

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

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

这是3个空对象的列表.

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

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

var mylist = [
    {name: 'John', age: 24},
    {name: 'Bill', age: 42},
    {name: 'Jill', age: 18},
    ]
Run Code Online (Sandbox Code Playgroud)

您可以像这样访问它:

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

mylist[2].age
>>> 18
Run Code Online (Sandbox Code Playgroud)

JavaScript有几种数据类型:

1
100
-2000
123.45
Run Code Online (Sandbox Code Playgroud)

"Hi John"
"Message:\nGo Forth"
Run Code Online (Sandbox Code Playgroud)

布尔

true
false
Run Code Online (Sandbox Code Playgroud)

排列

[1,2,3]
[]
["a", "b", 123]
["a", "b", 123, [3,4,5]]
Run Code Online (Sandbox Code Playgroud)

宾语

{}
{a: 10}
{mylist: [1,2,3], yourlist: [4,5,6]}
{myself: {name: 'me', age: 10}, yourself: {name: 'you', age: 20}}
Run Code Online (Sandbox Code Playgroud)


jah*_*roy 5

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

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

对象是键名值对的集合.

这是一个字符串数组的示例:

var a = [ "one", "two", "three" ];
Run Code Online (Sandbox Code Playgroud)

这是一个代表一个人的简单对象的例子:

var personObject = {
    name: 'Joe',
    age: 25,
    hometown: 'New York'        
};
Run Code Online (Sandbox Code Playgroud)