JavaScript物件標記法,英文名稱JavaScript Object Notation,簡稱JSON,是一種文字格式標記法,為 JavaScript Programming Language,
Standard
ECMA-262 3rd Edition - December 1999 的子集合,想要了解JSON,可以先了解JavaScript中陣列的運作方式。
如果您要一個具索引的陣列,可以使用Array initializer的方式,例如:
myLibrary.books=
[predefinedBook1,predefinedBook2,predefinedBook3];
在JavaScvript中,您可以使用Object initializer的方式來建立物件並指定其屬性,例如:
myLibrary.books={
bestSeller : predefinedBook1,
cookbook : predefinedBook2,
spaceFiller : predefinedBook3
};
如果屬性名稱中間有空白,則可以用引號括住,例如:
myLibrary.books={
"best Seller" : predefinedBook1,
cookbook : predefinedBook2,
spaceFiller : predefinedBook3
};
由於陣列是物件,而陣列之中可以置放物件,而物件可以使用Object initializer的方式來建立,因而您可以更複雜的方式來建立物件,物件中包括陣列屬性,陣列中包括物件:
var some = { // 這邊是Object initializer
prop1 : "value1",
prop2 : ["v1", "v2", "v3"], // 這邊是Array initializer
prop3 : [ // 這邊是Array initializer
{ // 這邊是Object initializer
key1 : "o1",
key2 : [ // 這邊是Array initializer
{loc: "Kaohsiung", number : 1503}, // 這邊是Object initializer
{loc: "Taipei", number : 2}
]
key3 : new Date(2007, 2, 1)
}
]
};
JSON在指定值時可以使用任何JavaScript程式碼,甚至是自己定義的函式 :
function currentDate(){
return new Date(2007, 2, 1);
}
var volNum=2;
var turnipVol2={
title : "Ajax in action" +volNum,
authors : [
{ name: "Justin", age: 32 }
],
publicationDate : currentDate() // 設定為currentDate()的傳回值
};
也可以使用JSON建立物件並建立成員函式:
var turnipVol2={
…
summarize:function(len){
....
}
};
還可以如下混用建立物件與其屬性:
var numbers={ one:1, two:2, three:3 };
numbers.five=5;
numbers.someone = {
name : "Justin",
age : 32,
birthday : new Date(1975, 5, 26)
};
有了以上Object initializer的基礎,可以進一步看看 JSON 的介紹,了解 JSON 的文字格式結構。