jQuery.parseJSON()函數(shù)用于將格式完好的JSON字符串轉(zhuǎn)為與之對應(yīng)的JavaScript對象。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了左貢免費建站歡迎大家使用!
所謂"格式完好",就是要求指定的字符串必須符合嚴(yán)格的JSON格式,例如:屬性名稱必須加雙引號、字符串值也必須用雙引號。
如果傳入一個格式不"完好"的JSON字符串將拋出一個JS異常,例如:以下字符串均符合JSON格式,但它們不是格式完好的JSON字符串(因此會拋出異常):
//
以下均是字符串值,省略了兩側(cè)的引號,以便于展現(xiàn)內(nèi)容
{id:
1}
//
id是屬性名稱,必須加雙引號
{'id':
1}
//
id是屬性名稱,必須用雙引號(不能用單引號)
{"name":
'CodePlayer'}
//
name屬性的值是字符串,必須用雙引號(不能用單引號)
JSON標(biāo)準(zhǔn)不允許字符串中出現(xiàn)"控制字符",例如:一個Tab或換行符。
$.parseJSON('{"name":
"Code\tPlayer\n"}');
//
多數(shù)情況下,它會拋出一個錯誤,因為JS解析器會將字符串中的\t或\n等轉(zhuǎn)義直接視作字面值,起到Tab或換行的效果。
//正確寫法應(yīng)該如下(使用兩個反斜杠,以免被JS解析器直接轉(zhuǎn)義\t或\n):
$.parseJSON('{"name":
"Code\\tPlayer\\n"}');
如果瀏覽器提供了一個本地的JSON.parse()方法,則jQuery將使用它來解析JSON字符串。
在jQuery
1.9之前(不含1.9):如果傳入一個空字符串、null或undefined,該函數(shù)將返回null,而不是拋出一個錯誤,即使它不是有效的JSON字符串。
該函數(shù)屬于全局的jQuery對象。
jQuery中使用jQuery.parseJSON()方法將字符串轉(zhuǎn)為json格式
例如:
jQuery.parseJSON('{"test":1}');
注意:
傳入格式有誤的 JSON 字符串可能導(dǎo)致拋出異常。例如,下面這些無效的 JSON 字符串:
{test: 1} //(test 沒有使用雙引號包裹).
{'test': 1} //('test' 用了單引號而不是雙引號包裹).
"{test: 1}" //(test 沒有使用雙引號包裹).
"{'test': 1}" //('test' 用了單引號而不是雙引號包裹).
"'test'" //('test' 用單引號代替雙引號).
".1" //(number 必須以數(shù)字開頭; "0.1" 將是有效的).
"undefined"http:// (undefined 不能表示一個 JSON 字符串; 然而null,可以).
"NaN" //(NaN 不能表示一個 JSON 字符串; 用Infinity直接表示無限也是不允許的).
擴展:
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于ECMAScript的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成(網(wǎng)絡(luò)傳輸速率)。
serialize()返回值是字符串。
serializeArray()此方法返回的是JSON對象而非JSON字符串。需要使用插件或者第三方庫進行字符串化操作。
jquery1.4API中有個例子是這么把JSON對象轉(zhuǎn)成字符串的。
示例
描述:
取得表單內(nèi)容并插入到網(wǎng)頁中。
HTML 代碼:
p id="results"bResults:/b /p
form
select name="single"
optionSingle/option
optionSingle2/option
/select
select name="multiple" multiple="multiple"
option selected="selected"Multiple/option
optionMultiple2/option
option selected="selected"Multiple3/option
/selectbr/
input type="checkbox" name="check" value="check1"/ check1
input type="checkbox" name="check" value="check2" checked="checked"/ check2
input type="radio" name="radio" value="radio1" checked="checked"/ radio1
input type="radio" name="radio" value="radio2"/ radio2
/form
jQuery 代碼:
var fields = $("select, :radio").serializeArray();
jQuery.each( fields, function(i, field){
$("#results").append(field.value + " ");
});
eval函數(shù)語法
eval(codes);
codes -- 字符串形式的表達式或語句
eval函數(shù)返回值
如果沒有參數(shù),返回undefined
如果有返回值將返回此值,否則返回undefined
如果為表達式,返回表達式的值
如果為語句返回語句的值
如果為多條語句或表達式返回最后一條語句的值
在使用eval轉(zhuǎn)化字符串為json時,必須要注意,字符串必須可以轉(zhuǎn)化成json對象,否則不能轉(zhuǎn)換,舉例如下
var?str?=?"?{?'?name?'?:?'?value?'}";
var?obj?=?eval('('+str+')');
JSON.stringify(要轉(zhuǎn)換的object對象)。此方法返回的就是一個類似于 {“name”:"張三","age":18} 這樣的字符串
/**
* 將json字符串轉(zhuǎn)換為對象的方法。
*
* @public
* @param json字符串
* @return 返回object,array,string等對象
**/
jQuery.extend({
/** * @see 將json字符串轉(zhuǎn)換為對象 * @param json字符串 * @return 返回object,array,string等對象 */
evalJSON: function(strJson) {
return eval("(" + strJson + ")");
}
});
分享文章:jquery字符串轉(zhuǎn)對象,js中字符串轉(zhuǎn)對象
文章源于:http://muchs.cn/article38/phessp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、響應(yīng)式網(wǎng)站、定制網(wǎng)站、微信小程序、關(guān)鍵詞優(yōu)化、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)