JSON筆記整理

JSON是javascript的一個子集,利用js中的一些兒模式來表示結構化數據。不是隻有javascript才使用JSON,JSON是一種數據格式,不少編程語言都有針對JSON的解析器和序列化器。
javascript

JSON的語法能夠表示一下三種類型的值:
html

  • 簡單值:能夠在JSON中表示字符串、數值、布爾值和null ; 但不支持js中的特殊值 undefined java

  • 對象:表示的是一組有序的鍵值對兒編程

  • 數組:表示的是一組有序的值得列表json


簡單值:數組

-數值(整數或者浮點數 編程語言

-字符串(必須在引號裏)函數

-布爾值spa

-nullcode

對象值:

    javascript中的對象字面量:

var person = {
    name:"Zhou",
    age:29
};

json中的對象要求必須給屬性加引號,以下:

{
    "name":"Zhou",
    "age":29
}

JSON中沒有變量的概念,其次末尾不用分號。屬性的值能夠是簡單值,也能夠是複雜類型值,能夠在對象中嵌入對象:

{
    "name":"Zhou",
    "age":29,
    "school":{
         "name":"XXX College",
         "address":"XXXXXXXXXX"
    }
}


數組:

JSON數組採用的及時JS裏的數組字面量形式

[ 25, "age", true ]

一樣沒有變量和分號。



JSON對象有兩個方法:stringify() 和 parse(),這兩個方法 分別用於把javascript對象序列化爲JSON字符串解析爲javascript值。

var people = { 
    name:"小明",
    age:25,
    friends:[
          "小紅",
          "小蘭"
    ]   
}
var json = JSON.stringify(people);
alert(json);  

// 返回結果:{"name":"小明","age":25,"friends":["小紅","小蘭"]}

上面例子JSON.stringify()把一個javascript對象序列化爲一個JSON字符串,而後將它保存在變量json中。默認請款下,輸出的JSON字符串不包含任何空格字符或縮進。

在序列化javascript對象是,全部函數及原型成員都會被有意忽略,值爲undefined的任何屬性也會被跳過。


將JSON字符串直接傳遞給JSON.parse()就能夠獲得相應的javascript的值。




JSON除了序列化javascript對象外,還能夠接受多個參數。

第二個參數能夠是個數組,也能夠是函數:

var people = { 
    name:"小明",
    age:25,
    friends:[
          "小紅",
          "小蘭"
    ]   
}
var json = JSON.stringify(people,["name","friends"]);
alert(json);  

//返回結果:{"name":"小明","friends":["小紅","小蘭"]}


若是第二個參數是函數:

        var people = { 
                name:"小明",
                age:25,
                friends:[
                      "小紅",
                      "小蘭"
                    ]   
        }
        var json = JSON.stringify(people,function(key,value){
            switch(key){
                case "name": 
                    return "小軍";
                case "age": 
                    return 20;
                case "friends": 
                    return null;
                default: 
                    return value;
            }
        });
        alert(json);
        
        //返回結果:{"name":"小軍","age":20,"friends":null}


第三個參數用於控制結果中的縮進和空白符。若是這個參數是一個數值,那它表示縮進的空格數,最大縮進空格數爲10,全部大於10的值都會自動轉換爲10。只要傳入有效的數值,結果字符串就會包含換行符。

若是縮進參數是字符串而非數值,則這個字符將在JSON字符串中被用做縮進字符,縮進字符串最長不能超過10個字符長,超過10個結果中將出現前10個字符。

        var people = {         
            name:"小明",
            age:25,
            friends:[
                  "小紅",
                  "小蘭"
            ]   
        }
        var json = JSON.stringify(peopl,null,10);
        //var json = JSON.stringify(peopl,null,"hello");
        alert(json);


閱讀拓展連接:

JSON.stringify()方法詳解

http://www.json.org/index.html

http://www.cnblogs.com/zxlovenet/p/3566802.html#c001

相關文章
相關標籤/搜索