1. 程式人生 > >JSON基礎(一)

JSON基礎(一)

什麼是 JSON ?
JSON JavaScript Object Notation(JavaScript 物件表示法)
JSON 是輕量級的文字資料交換格式,它和XML相似,但比XML更小,更快,更易解析,更容易被理解。
JSON 獨立於語言:JSON 使用 Javascript語法來描述資料物件,但是 JSON 仍然獨立於語言和平臺。
JSON 解析器和 JSON 庫支援許多不同的程式語言。 目前非常多的動態(PHP,JSP,.NET)程式語言都支援JSON。
JSON 轉換成JavaScript :JavaScript 程式能夠使用內建的 eval() 函式,用 JSON 資料來生成原生的 JavaScript物件,無需轉換器。
1.JSON資料格式:整數,浮點數,字串,陣列,物件,null,布林值(true/false)
    整數/浮點數:{"age":30}
    布林值{"bool":true}
    null:{"year":null}
    物件:用{},{"name":"yang" , "call":"haha" }//這是一個物件,兩個鍵值對,物件可以建立多個鍵值對,多個鍵值對之間用,隔開
    陣列:用[],{
                "array": [
                                    { "name":"a" , "url":"hahaha" }, 
                                    { "name":"b" , "url":"ououou" }, 
                                    { "name":"c" , "url":"yeyeye" }
                             ]
                }//array是一個數組,三個物件,每個物件包含兩個鍵值對
                    ["a","b","c"]//也是一陣列
2.物件的訪問(四種)var a={ "name":"yang" , "call":"haha" };
    var b=a.name;
    var b=a.["name"];
    for (x in a) {
            document.getElementById("div1").innerHTML += x + "<br>";//輸出的是屬性(name和call)
    }
    for (x in myObj) {
            document.getElementById("div2").innerHTML += a[x] + "<br>";//輸出的是值(yang或haha)
    }
3.巢狀JSON物件
    a= {
        "name":"yang",
        "age":21,
        "sites": {
            "play":"ball",
            "call":"hahaha",
            "work":"java"
            }
    }
   巢狀物件訪問:x = a.sites.play;/x = a.sites["play"];
   巢狀物件修改:a.sites.play = "swim";/a.sites["play"] = "swim";
   巢狀物件的刪除:delete a.sites.play;/delete a.sites["play"];
4.JSON陣列var shuzu={
                 "play":"ball",
                 "call":"hahaha",
                 "array": ["a","b","c"]
                    }
    陣列的訪問:x=shuzu.array[0];
                         可以使用for-in或普通的for迴圈訪問
                         for (i in shuzu.array) {
                                x += shuzu.array[i] + "<br>";
                          }
                          for (i = 0; i < shuzu.array.length; i++) {
                                x += shuzu.array[i] + "<br>";
                          }
    陣列的修改:shuzu.array[1]="d";
    陣列的刪除:delete shuzu.array[1];