JSON對象及Json和字面量對象的區別

JSON對象的格式:

JSONJavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。XML曾經是程序界風靡一時的語言,但JSON的出現對他也有不小的衝擊。

JSONJavaScript原生格式,這意味着在JavaScript中處理JSON數據不需要任何特殊的API或工具包。

JSON的規則很簡單:對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”後跟一個“:”(冒號);“‘名稱/值’對”之間使用“,”(逗號)分隔。

規則如下:

1) JSON的屬性名稱要求以“雙引號”包裹      

2) 映射用冒號(“:”)表示。名稱:

3) 並列的數據之間用逗號(“,”)分隔。名稱1:1,名稱2:2

4) 映射的集合(對象)用大括號({}”)表示。{名稱1:1,名稱2:2}

5) 並列數據的集合(數組)用方括號([])表示。

         [

           {名稱1:,名稱2:2},

           {名稱1:,名稱2:2}

         ]

6) 元素值可具有的類型:string, number, object, array, true, false, null

1.1. JSON示例

JSON 用冒號(而不是等號)來賦值。每一條賦值語句用逗號分開。整個對象用大括號封裝起來。可用大括號分級嵌套數據。

var obj = {};

對象描述中存儲的數據可以是字符串,數字或者布爾值。對象描述也可存儲函數,那就是對象的方法。

 

1.2. 解析JSON

JSON 只是一種文本字符串。

可以JavaScript eval 語句。函數 eval 會把一個字符串當作它的參數。然後這個字符串會被當作 JavaScript 代碼來執行。因爲 JSON 的字符串就是由 JavaScript 代碼構成的,所以它本身是可執行的

代碼實例:

<script language="JavaScript">

     var jsonObj = {"name":"xiaoq","age":18};

     // 查看json對象的原生結構

     console.debug(jsonObj); // "({name:"xiaoq", age:18})"

 </script>

<script language="JavaScript">

     var jsonStr =’{"name":"xiaoq","age":18}’;

     // 查看json對象的原生結構

     console.debug(eval(“(+jsonStr+)”)); //

 </script>

 

1.3. JSONJS字面量(重要)

JS字面量:

{name:”小強}

 

JSON

   {name:”小強}

 

格式的識別,可以採用字符串轉換方式。

 

但是,eval的參數是js字符串(並不是JSON字符串)。

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

 

 

ECMAScript3.1標準中,已經提供了一個名爲JSON的全局對象,專門用來解析和反解析JSON字符串。

var obj = JSON.parse("{}"); // 字符串轉JSON

JSON.stringify(obj);// 對象轉JSON

 

1.4. 操作JSON

例子1

<script language="JavaScript">

     var people ={"firstName": "Brett", "lastName":"McLaughlin",

     "email": "[email protected]" };

     alert(people.firstName);

     alert(people.lastName);

     alert(people.email);

 </script>


 

 

 

 

<script language="JavaScript">

      var people =[

                     {"firstName": "Brett","email": "[email protected]" },

                     {"firstName": "Mary","email": "[email protected]" }

                ];

 

    alert(people[0].firstName);

    alert(people[0].email);

    alert(people[1].firstName);

    alert(people[1].email);

 </script>

 

 

 

 <script language="JavaScript">

      var people ={

             "username":"mary",

             "age":"20",

             "info":{"tel":"1234566","celltelphone":788666},

             "address":[

                     {"city":"beijing","code":"1000022"},

                     {"city":"shanghai","code":"2210444"}

              ]

        };

 

      window.alert(people.username);

      window.alert(people.info.tel);

      window.alert(people.address[0].city);

 </script>

 

1.5. JSON小結

優點:

作爲一種數據傳輸格式,JSON XML 很相似,但是它更加靈巧。

JSON 不需要從服務器端發送含有特定內容類型的首部信息。

缺點:

語法過於嚴謹

代碼不易讀

eval 函數存在風險

 

簡述JavaScript字面量和JSON之間的區別??


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章