|
JavaScript物件標記法,英文名稱JavaScript Object Notation,簡稱 JSON,為 JavaScript Programming Language,
Standard
ECMA-262 3rd Edition - December 1999
的子集合,從 JavaScript 的 object literal (或稱 object initalizer
)擴充而來的一種文字格式標記法,作為資料交換之用,因此想要了解 JSON,可以先了解JavaScript 中 object literal
的運作方式。 如果您要一個具索引的陣列,可以使用Array initializer的方式,例如: myLibrary.books=
[predefinedBook1,predefinedBook2,predefinedBook3]; 在JavaScript中,您可以使用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) } ] }; object literal 在指定值時可以使用任何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()的傳回值 }; 也可以使用 object literal 建立物件並建立成員函式: 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 literal 的基礎,可以進一步看看 JSON 的介紹,了解 JSON 的文字格式結構。 |