首頁 >web前端 >js教程 >JavaScript中的物件與JSON_基礎知識

JavaScript中的物件與JSON_基礎知識

WBOY
WBOY原創
2016-05-16 15:51:471168瀏覽

簡介

JSON即JavaScript Object Natation,它是一種輕量級的資料交換格式,非常適合伺服器與 JavaScript 的互動。
JSON是一種資料交換格式,像XML和YAML一樣是一種在各種不同語言間傳遞結構化訊息的方式。從另一方面來說,javascript物件是javascript語言中的一種資料類型,就像PHP中的陣列、C 中類別和結構體。

定義JSON與javascript物件

在javascript程式中定義物件的時候,物件的屬性名稱可以加雙引號也可以不加雙引號。如果屬性名稱包含特殊字元(如!、if等)的時候,就必須加雙引號。
在定義JSON的時候,屬性名稱必須加雙引號。

程式碼範例:

1.定義javascript物件

複製程式碼 程式碼如下:

var obj={name:"tudouya","sex":"man"};  #兩個屬性可以加雙引號也可以不加
var obj={"!":"hello world"};  #屬性名包含特殊字元時必須加上雙引號

2.定義JSON字串
複製程式碼 程式碼如下:

var jsonString={"name":"tudouya"};  #定義JSON時必須加雙引號

javascript物件轉換為JSON

1.javascript物件轉換為JSON

我們可以使用javascript的內建函數將javascript物件轉換為JSON,這個函數就是JSON.stringify().
程式碼範例:

複製程式碼 程式碼如下:

var obj={name:"tudouya",sex:"man"};
var jsonObj=JSON.stringify(obj);
console.log(jsonObj);
##輸出結果為:{"name":"tudouya","sex":"man"}

在將javascript物件轉換為JSON的時候,有一點是需要我們注意的:
如果物件中包含有值為函數和日期的屬性,JSON會忽略值為函數的屬性,並將值為日期的屬性轉換為字串。
程式碼範例:
複製程式碼 程式碼如下:

var obj={
 name:"tudouya",
 birthday:new Date(),
 action:function (){
  document.write("walk");
 }
};
var jsonObj=JSON.stringify(obj);
console.log(jsonObj);
##輸出結果為:{"name":"tudouya","birthday":"2014-08-12T10:05:00.497Z"}

javascript解析JSON

在舊版的JS中,大家通常都會使用eval()函數來解析JSON,但是ECMAScript5給我們提供了一個解析JSON的新函數JSON.parse()。

這個函數的使用方法比較簡單,大家可以自行嘗試。當對某個JSON字串應用該函數以後,該JSON就被轉換為javascript的對象,也就是說當用typeof運算子查看該函數的類型時,返回的值是Object。
同樣有一點要注意的是,該函數是ECMAScript5以後才支援的,如果是舊版的瀏覽器那麼可能不支援該函數。解決的方法是載入一個實作該函數的js文件,即json2.js。如果使用的是JQuery框架,jQuery.parseJSON(),則函數呼叫了JSON.parse()方法。
關於使用eval()方法解析JSON,這個等深入學習後會記錄下來。

一個很重要的概念

作為一個前端菜鳥,經常聽到別人說“JSON對象”,但是其實並沒有“JSON對象”這個概念,JSON真正的表現形式是字符串。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn