?才畢業(yè)的開發(fā)小白,最近在使用node、php和vue,有興趣的小伙伴可以加群 134246716,大家一起學(xué)習(xí),這是一個(gè)新建群,有興趣的初學(xué)者可以來一起學(xué)習(xí)哦。
JSON基本語法
JSON 的語法可以表示以下三種類型的值。
- 簡單值: 可以在 JSON 中表示 字符串、 數(shù)值、布爾值 和 null。但是不支持 Javascript 中的 undefined。
- 對(duì)象: 是一種復(fù)雜數(shù)據(jù)類型,由一組無序的 鍵值對(duì) 組成,每個(gè)鍵值對(duì)的 值 可以是簡單值,也可以是復(fù)雜數(shù)據(jù)類型。
- 數(shù)組: 也是一種復(fù)雜的數(shù)據(jù)類型,表示一組有序的列表,可以通過數(shù)組索引來訪問其中的值。數(shù)組的 值 也可以是任意類型—— 簡單值、對(duì)象 或是 數(shù)組。
簡單值
最簡單的 JSON 數(shù)據(jù)形式就是簡單值。比如,
- 數(shù)值的表示方式:
5
- 字符串的的方式:
"Hello World!"
JavaScript 字符串和JSON 字符串的最大區(qū)別在于,JSON 字符串必須使用 雙引號(hào)。
- 布爾值:
false
true
- null 值
null
對(duì)象
先來看一個(gè)標(biāo)準(zhǔn)的 JavaScript 對(duì)象字面量:
var person = {
name: "Nicolas",
age: 29
};
但 JSON 表示對(duì)象如下所示:
{
"name": "Nicolas",
"age": 29
}
JSON 要求必須給對(duì)象的屬性加引號(hào)。實(shí)際上,在 JavaScript 中,對(duì)象字面量完全可以寫成下面
var person = {
"name": "Nicolas",
"age": 29
};
這里可以看出,JSON對(duì)象有兩個(gè)不一樣的地方:
- 沒有聲明變量;
- 末尾沒有分號(hào)。
屬性的值可以是簡單值,也可以是復(fù)雜類型值,如下例子:
{
"name": "Nicolas",
"age": 29,
"school": {
"name": "Merrimack College",
"location": "North Andover, MA"
}
}
上述例子中雖然有兩個(gè) "name" 屬性,但是它們分屬于兩個(gè)不同的對(duì)象,是可以的。同一個(gè)對(duì)象不應(yīng)該出現(xiàn)兩個(gè)同名屬性。
數(shù)組
JSON 中第二種復(fù)雜數(shù)據(jù)類型就是數(shù)組。數(shù)組可以是簡單值組成,如
[25, "hi", true]
也可以是各種類型值得組合:
[
{
"title": "Professional JavaScript",
"authors": {
"name": "Nicholas C. Zakas",
"age": 51
},
"editon": 3,
"year": 2011
},
{
"title": "Professional JavaScript",
"authors": [
"Nicholas C. Zakas"
],
"editon": 2,
"year": 2009
},
{
"title": "Professional JavaScript",
"authors": [
"Nicholas C. Zakas"
],
"editon": 1,
"year": 2006
},
{
"title": "Professional Ajax",
"authors": [
"Nicholas C. Zakas",
"Jeremy McPeak",
"Joe Fawcett"
],
"editon": 2,
"year": 2008
},
{
"title": "Professional Ajax",
"authors": [
{
"name": "Nicholas C. Zakas",
"age": 35
},
{
"name": "Jeremy McPeak",
"age": 37
},
{
"name": "Joe Fawcett",
"age": 41
}
],
"editon": 1,
"year": 2007
}
]