天天看點

JSON那點事?

一、什麼是JSON?

1、JSON指的是JavaScript對象表示法(JavaScript  Object Notation)

2、JSON是輕量級的文本資料交換格式

3、JSON獨立于語言

4、JSON具有自我描述性,更易了解

總結為一句話就是:JSON使用JavaScript文法來描述資料對象,但是JSON依然獨立于語言和平台,JSON解析器和JSON庫支援許多不同的程式設計語言

JSON本來用來表示JavaScript對象的一種書局文本格式,但是由于他的輕量級、易解析,操作等一些特點,漸漸的被很多語言支援

二、XML與JSON執行個體的比較:

1、使用XML表示中國部分省市的資料:

<?xml version="1.0" encoding="utf-8" ?>
<country>
    <name>中國</name>
    <province>
        <name>黑龍江</name>
        <citys>
            <city>哈爾濱</city>
            <city>大慶</city>
        </citys>    
    </province>
    <province>
        <name>廣東</name>
        <citys>
            <city>廣州</city>
            <city>深圳</city>
            <city>珠海</city>
        </citys>   
    </province>
    <province>
        <name>台灣</name>
        <citys>
            <city>台北</city>
            <city>高雄</city>
        </citys> 
    </province>
    <province>
        <name>新疆</name>
        <citys>
            <city>烏魯木齊</city>
        </citys>
    </province>
</country>
           

     2、使用JSON表示中國部分省市資料

var country =
    {
        name: "中國",
        provinces: [
            { name: "黑龍江", citys: { city: ["哈爾濱", "大慶"]} },
            { name: "廣東", citys: { city: ["廣州", "深圳", "珠海"]} },
            { name: "台灣", citys: { city: ["台北", "高雄"]} },
            { name: "新疆", citys: { city: ["烏魯木齊"]} }
        ]
    }
           

   三、JSON相比XML的不同之處:

在JSON之前,我們通常在網絡傳輸中使用的格式是XML,

  •          XML的特點:較好的可讀性,格式統一,解析簡單
  •          JSON相比XML的特點:更小、更快,更易解析

                    (1)JavaScript原生支援JSON,解析速度會比XML更快

                    (2)XML解析DOM對象的時候,浏覽器之間會産生差異

                    (3)JSON有很多強大的庫能幫助我們更快更簡單的完成工作

                    (4)沒有結束标簽,更短,讀寫速度快,能夠使用JavaScript内建eval()函數進行解析,使用數組,不使用保留字

*作用:<>XML:讀取XML文檔;使用XML DOM來循環周遊文檔;讀取值并存儲在變量中

            <>JSON:讀取JSON字元串;用eval()處理JSON字元串

四、JSON的具體學習

1、JSON文法

用戶端與伺服器交換的資料無非就是兩種:數組或者對象,JSON也無非就是這兩種,JSON文法是JavaScript文法的子集,在JavaScript中用[]來表示數組,,用{}來表示對象,例如:

//JSON數組(元素為對象的數組)
var employees = [
    { "firstName":"Bill" , "lastName":"Gates" },
    { "firstName":"George" , "lastName":"Bush" },
    { "firstName":"Thomas" , "lastName": "Carter" }
];
           
//JSON對象
var obj = {

    age:20,
    str:"wmyskxz",
    method:function() {
        alert("我愛學習");
    }

};
           

2、解析JSON

首先來建立一個JSON對象

(1)使用HTML解析

在HTML中我們可以直接使用"."點号來直接通路JSON對象的屬性

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <title>JSON學習</title>
</head>
<body>
<p>
    Name:<span id="name"></span><br>
    Age:<span id="age"></span><br>
</p>

<script>
    var JASONObject = {"name": "我沒有三顆心髒", "age": 21};

    document.getElementById("name").innerHTML = JASONObject.name;
    document.getElementById("age").innerHTML = JASONObject.age;
</script>
</body>
</html>
           

顯示效果如下:

JSON那點事?

但是通常情況下,我們拿到和上傳的并不是一個真正的jJSON對象,而是一串由JSON轉化得到的字元串,比如可以這樣表示:

<script>
    var txt = '{"students":[' +
        '{"name":"我沒有三顆心髒0","age":21},' +
        '{"name":"我沒有三顆心髒1","age":21 }]}';

    var obj = eval("(" + txt + ")");

    document.getElementById("name").innerHTML = obj.students[1].name;
    document.getElementById("age").innerHTML = obj.students[1].age;
</script>
           

繼續閱讀