14_JSON

JSON

JavaScript Object Notation JS對象表示法

// notation [nəʊ'teɪʃ(ə)n] 	n. 符號;樂譜;註釋;記號法

JS中的對象只有JS自己認識,其他的語言都不認識;
JSON就是一個特殊格式的字符串,這個字符串可以被任意的語言所識別,
並且可以轉換爲任意語言中的對象,JSON在開發中主要用來數據的交互。

JSON和JS對象的格式一樣,只不過JSON字符串中的屬性名必須加雙引號,其他的和JS語法一致

JSON分類:

1.對象 {}
2.數組 []

JSON中允許的值:

1.字符串
2.數值
3.布爾值
4.null
5.對象
6.數組

JS<–>JSON

在JS中,爲我們提供了一個工具類,就叫JSON,
這個對象可以幫助我們將一個JSON轉換爲JS對象,也可以將一個JS對象轉換爲JSON。

json --> js對象
JSON.parse() 
	[parse [pɑːz]	vt. 解析;從語法上分析]
	可以將以JSON字符串轉換爲js對象
	它需要一個JSON字符串作爲參數,會將該字符串轉換爲JS對象並返回
	var json = '{"name":"孫悟空","age":18,"gender":"男"}';
	var o = JSON.parse(json);

JS對象 —> JSON

JSON.stringify()
	可以將一個JS對象轉換爲JSON字符串
	需要一個js對象作爲參數,會返回一個JSON字符串

var obj3 = {name:"豬八戒" , age:28 , gender:"男"};
var str = JSON.stringify(obj3);

JSON這個對象在IE7及以下的瀏覽器中不支持,所以在這些瀏覽器中調用時會報錯,
如果需要兼容IE7及以下的JSON操作,則可以通過引入一個外部的js文件來處理。

<script type="text/javascript" src="js/json2.js"></script>

eval()

這個函數可以用來執行一段字符串形式的JS代碼,並將執行結果返回;

如果使用eval()執行的字符串中含有{},它會將{}當成是代碼塊;
如果不希望將其當成代碼塊解析,則需要在字符串前後各加一個()。

eval()這個函數的功能很強大,可以直接執行一個字符串中的js代碼,
但是在開發中儘量不要使用,首先它的執行性能比較差,然後它還具有安全隱患

var str2 = "alert('hello');";
eval(str2) // 頁面彈出警告 'hello'

var str = '{"name":"孫悟空","age":18,"gender":"男"}';

// var obj3 = eval(str) 
// Uncaught SyntaxError: Unexpected token :
// 直接解析會報錯,會將{}作爲代碼塊解析

var obj = eval("("+str+")"); 
// {name: "孫悟空", age: 18, gender: "男"}
console.log(obj); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章