JavaScript中的對象與JSON,javascriptjson

來源:互聯網
上載者:User

JavaScript中的對象與JSON,javascriptjson

簡介

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真正的表現形式是字串。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.