JavaScript中的對象與JSON
簡介
JSON即JavaScript Object Natation,它是一種輕量級的數(shù)據(jù)交換格式,非常適合于服務器與 JavaScript 的交互。
JSON是一種數(shù)據(jù)交換格式,像XML和YAML一樣是一種在各種不同語言間傳遞結構化信息的方式。從另一方面來說,javascript對象是javascript語言中的一種數(shù)據(jù)類型,就像PHP中的數(shù)組、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的內(nèi)置函數(shù)將javascript對象轉換為JSON,這個函數(shù)就是JSON.stringify().
代碼示例:
var obj={name:"tudouya",sex:"man"};
var jsonObj=JSON.stringify(obj);
console.log(jsonObj);
##輸出結果為:{"name":"tudouya","sex":"man"}
在將javascript對象轉換為JSON的時候,有一點是需要我們注意的:
如果對象中包含有值為函數(shù)和日期的屬性,JSON會忽略值為函數(shù)的屬性,并將值為日期的屬性轉換為字符串。
代碼示例:
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()函數(shù)來解析JSON,但是ECMAScript5給我們提供了一個解析JSON的新函數(shù)JSON.parse()。
這個函數(shù)的使用方法比較簡單,大家可以自行嘗試。當對某個JSON字符串應用該函數(shù)以后,該JSON就被轉換為javascript的對象,也就是說當用typeof運算符查看該函數(shù)的類型時,返回的值是Object。
同樣有一點需要注意的是,該函數(shù)是ECMAScript5以后才支持的,如果是舊版本的瀏覽器那么可能不支持該函數(shù)。解決的方法是加載一個實現(xiàn)該函數(shù)的js文件,即json2.js。如果使用的是JQuery框架,jQuery.parseJSON(),該函數(shù)調(diào)用了JSON.parse()方法。
關于使用eval()方法解析JSON,這個等深入學習后會記錄下來。
一個很重要的概念
作為一個前端菜鳥,經(jīng)常聽到別人說“JSON對象”,但是其實并沒有“JSON對象”這個概念,JSON真正的表現(xiàn)形式是字符串。
- JavaScript獲得指定對象大小的方法
- JavaScript對象屬性檢查、增加、刪除、訪問操作實例
- javascript中JSON對象與JSON字符串相互轉換實例
- javascript實現(xiàn)類似java中getClass()得到對象類名的方法
- JavaScript數(shù)組對象賦值用法實例
- JavaScript的面向對象編程基礎
- javascript中html字符串轉化為jquery dom對象的方法
- JavaScript對象學習小結
- 淺談Javascript中Object與Function對象
- 詳解JavaScript對Date對象的操作問題(生成一個倒數(shù)7天的數(shù)組)
- 深入學習JavaScript對象
相關文章
詳解JavaScript函數(shù)callee、call、apply的區(qū)別
這篇文章主要介紹了JavaScript函數(shù)callee、call、apply的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03