利用成對的 { } 來包住各物件(object),用成對的 [ ] 來包住陣列(array),用成對的 " " 來包住各字串,用逗號來區隔各物件中的變數或物件。
資料型態有 string、number、array、object,另外有三個常數true、false、null。
下面範例是兩個 JSON物件:
第一個其中又包含了obj1物件(擁有兩個變數child1和child2,各自的值是value1和value2),以及一個陣列 array1。
第二個是一個陣列裡放了三個JSON物件。
//單一個JSON var objJSON = {"obj1": {"child1":"value1","child2":"value2"},"array1": [1, 2, 3, 4, 5]}; //多個JSON於陣列 aryJSON = [{ name: "Lin", age: "20", height: "182" }, { name: "Wen", age: "18", height: "165" }, { name: "Pin", age: "25", height: "171" }];
P.S 1:可以透過 JSON Editor Online,方便看出較複雜的JSON階層關係,反之,也能用它來產生JSON格式:
P.S 2:另外,也能透過 JSON2CSharp 來將JSON轉換成C#的物件格式,以P.S 1的JSON為例,產生出來的C#物件格式如下:
一些操作JSON的範例如下:
直接取值
alert(objJSON.obj1.child2); //alert value2 alert(objJSON.array1[1]); //alert 2 alert(aryJSON[0]["name"]); //alert Lin alert(aryJSON[1]["height"]); //alert 165透過.length得知其中的物件數
var jsonNum = aryJSON.length; //jsonNum=3用迴圈來取出陣列裡JSON的值
for (var i = 0; i < jsonNum; i++) { alert(aryJSON[i]["name"]); //i=0=>Lin; i=1=>Wen; i=2=>Pin alert(aryJSON[i]["age"]); //i=0=>20; i=1=>18; i=2=>25 alert(aryJSON[i]["height"]); //i=0=>182; i=1=>165; i=2=>171 }在不知變數名稱的前提下透過迴圈取出變陣列裡JSON的值
for (var i = 0; i < jsonNum; i++) { for (var name in aryJSON[i]) { alert(aryJSON[i][name]); //分別alert各欄位的值 } }產生table
//先建立一個html table
參考來源:My Program、阿達隨筆
沒有留言:
張貼留言