JS JSON的一些操作
JSON(JavaScript Object Notation)是一種輕量級的資料交換格式。因為採用獨立於語言的文字格式,也使用了類似於C語言家族的習慣,擁有了這些特性使使JSON稱為理想的資料交換語言,作用是易於閱讀和編寫,同時也易於機器解析和生成(一般用於網路傳輸速率)。
(1)JSON.parse函式
作用:將json字串轉換成json物件。
語法:JSON. parse(text[,reviver]).
引數:text 必須;一個有效的json字串。
reviver 可選。
返回值:一個物件或陣列。
example:
(2)JSON.stringify()函式
作用:將json物件轉換成json字串。
語法:JSON.stringify(value [, replacer] [, space])
引數:value 必須;通常為物件或陣列。
replacer 可選,用於轉換結果的函式或者陣列。
space 可選。向返回值 JSON 文字新增縮排、空格和換行符以使其更易於讀取。
返回值:一個包含JSON文字的字串。
example:
(3) eval()函式
作用:eval()函式可計算某個字串,並執行其中的javascript表示式或要執行的語句。
語法:eval(string)
引數: string 必須,需要計算的字串,其中含有要計算的javascript表示式或要執行的語句。
返回值:返回計算string的值,沒有的話不做任何改變返回。
example:
使用eval()函式也可以將JSON字串解析為物件,這個功能能完成JSON.parse()的功能,但是有不一樣的地方,請看下面程式碼 :
不知道大家有木有注意到eval()還要用一對圓括號將字串包起來,對此我尋找到比較好的解釋就是:
原因:歸結於eval本身的問題,由於json是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表示式。
解決方法:加上圓括號的目的是迫使eval函式在處理JavaScript程式碼的時候強制將括號內的表示式(expression)轉化為物件,而不是作為語句(statement)來執 行。舉一個例子,例如物件字面量{},如若不加外層的括號,那麼eval會將大括號識別為JavaScript程式碼塊的開始和結束標記,那麼{}將會被認為是執行了一句空語 句。請看下列例子的不同:
======================================下面舉一個在實際開發中的小例子================================
一:組合引數
二:傳遞引數
三 :解析引數
最後附上js中獲取URL引數的共通方法getRequest()方法:
getRequest : function() {
var url = location.search; //獲取url中"?"符後的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]); }
}
return theRequest;
}
轉載於 https://www.cnblogs.com/vanl/p/5466670.html