jquery解析json格式數(shù)據(jù)的方法(對(duì)象、字符串)
本文實(shí)例講述了jquery解析json格式數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
json數(shù)據(jù)是我們常用的一種小型的數(shù)據(jù)實(shí)時(shí)交換的一個(gè)東西,他可以利用jquery或js進(jìn)行解析,下面我來介紹jquery解析json字符串方法。
一、jQuery解析Json數(shù)據(jù)格式:
使用這種方法,你必須在Ajax請(qǐng)求中設(shè)置參數(shù):
dataType: "json"
獲取通過回調(diào)函數(shù)返回的數(shù)據(jù)并解析得到我們想要的值,看源碼:
jQuery.ajax({ url: full_url, dataType: "json", success: function(results) { alert(result.name); } });
通常情況下,你可以從后臺(tái)返回JSON數(shù)據(jù),前臺(tái)就交給jQuery啦,哈哈?。?/p>
jquery異步請(qǐng)求將type(一般為這個(gè)配置屬性)設(shè)為“json”,或者利用$.getJSON()方法獲得服務(wù)器返回,那么就不需要eval()方法了,因?yàn)檫@時(shí)候得到的結(jié)果已經(jīng)是json對(duì)象了,只需直接調(diào)用該對(duì)象即可,這里以$.getJSON方法為例
例1
代碼如下:
var data=" { root: [ {name:'1',value:'0'}, {name:'6101',value:'北京市'}, {name:'6102',value:'天津市'}, {name:'6103',value:'上海市'}, {name:'6104',value:'重慶市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'漢中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'} ] }";
jquery
$.getJSON("http://www.dbjr.com.cn/",{param:"sanic"},function(data){ //此處返回的data已經(jīng)是json對(duì)象 //以下其他操作同第一種情況 $.each(data.root,function(idx,item){ if(idx==0){ return true;//同countinue,返回false同break } alert("name:"+item.name+",value:"+item.value); }); });
二、jQuery解析Json對(duì)象:
jQuery提供了另一種方法“parseJSON”,這需要一個(gè)標(biāo)準(zhǔn)的JSON字符串,并返回生成的JavaScript對(duì)象。讓我們來看看語法:
看看它是如何運(yùn)用的到實(shí)際開發(fā)中的:
jQuery.ajax({ url: dataURL, success: function(results) { var parsedJson = jQuery.parseJSON(results); alert(parsedJson.name); } });
補(bǔ)充:
jquery解析json數(shù)據(jù)完整實(shí)例:
var data=" { root: [ {name:'1',value:'0'}, {name:'6101',value:'北京市'}, {name:'6102',value:'天津市'}, {name:'6103',value:'上海市'}, {name:'6104',value:'重慶市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'漢中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'} ] }"; //data為字符串類型 則要將字符串類型轉(zhuǎn)換成json數(shù)據(jù)類型 var jsondatas=eval("("+data+")"); $.each(jsondatas.root,function(i,n){ alert("name"+n.name+"value"+n.value); } ) //以下為數(shù)組類型字符串 轉(zhuǎn)換成json 字符串 解析 //數(shù)組形式的json字符串 var jsondata="[{name:'1',value:'0'}, {name:'6101',value:'西安市'}, {name:'6102',value:'銅川市'}, {name:'6103',value:'寶雞市'}, {name:'6104',value:'咸陽市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'漢中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'}]"; var json=eval(jsondata); $.each(json,function(i,n){ alert(json[i].name); alert(json[i].value);//根據(jù)索引取值 }); //json數(shù)據(jù)字符 不需要轉(zhuǎn)換 var json={"Products":[ {"orderid":"11077","customerid":"RATTC"}, {"orderid":"11078","customerid":"RATT"} ], "Img":[{"id":"12345","url" :"image/1.jpg"} ]}; $.each(json.Products,function(i,n){ alert(n.orderid); })
一般處理文件(Handler.ashx)
if (context.Request.QueryString["method"] != null) { string method = context.Request.QueryString["method"].ToString(); if (method == "getlist") { string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection conn = new SqlConnection(str); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "select ProID,ProName,url from Project where Adress = '哈爾濱'"; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); string sb = CreateJsonParameters(ds.Tables[0]); context.Response.ClearContent(); context.Response.Write(sb.ToString()); context.Response.End(); } } } /// <summary> /// 構(gòu)建JSON字符串 /// </summary> /// <param name="dt"></param> /// <returns></returns> public string CreateJsonParameters(DataTable dt) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (dt != null && dt.Rows.Count > 0) { sb.Append("["); for (int i = 0; i < dt.Rows.Count; i++) { sb.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { //如果值不是最后一個(gè)則添加逗號(hào)分隔 if (j < dt.Columns.Count - 1) { sb.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + "/"" + dt.Rows[i][j].ToString() + "/","); } //如果值為最后個(gè)字符則不添加逗號(hào) else if (j == dt.Columns.Count - 1) { sb.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + "/"" + dt.Rows[i][j].ToString() + "/""); } } //如果為最后一個(gè)值的話 則不添加逗號(hào) if (i == dt.Rows.Count - 1) { sb.Append("}"); } else { sb.Append("},"); } } sb.Append("]"); return sb.ToString(); } else { return null; } }
$.ajax ( { type: "POST", url: "Handler.ashx?method=getlist", async: false,//true表示異步 false表示同步 contentType: "application/json", dataType: 'json', success: function(result) { var temp=eval(result); //通過javascript來解析返回?cái)?shù)組字符串 for (var i = 0; i < temp.length; i++) { o.innerHTML += "項(xiàng)目名稱:" + result[i].ProName + "<br/>網(wǎng)址:<a href=" + result[i].url + " mce_href=" + result[i].url + " target='_blank'>" + result[i].url + "</a><br/>"; datas += "項(xiàng)目名稱:" + result[i].ProName + "<br/>網(wǎng)址:<a href=" + result[i].url + " mce_href=" + result[i].url + " target='_blank'>" + result[i].url + "</a><br/>"; } TINY.box.show(datas, 0, 0, 0, 1); } });
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- jquery的ajax異步請(qǐng)求接收返回json數(shù)據(jù)實(shí)例
- jQuery Ajax異步處理Json數(shù)據(jù)詳解
- jQuery中使用Ajax獲取JSON格式數(shù)據(jù)示例代碼
- jquery的ajax和getJson跨域獲取json數(shù)據(jù)的實(shí)現(xiàn)方法
- jquery用ajax方式從后臺(tái)獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表
- 詳談 Jquery Ajax異步處理Json數(shù)據(jù).
- JQuery的ajax獲取數(shù)據(jù)后的處理總結(jié)(html,xml,json)
- 用jquery和json從后臺(tái)獲得數(shù)據(jù)集的代碼
- jQuery使用getJSON方法獲取json數(shù)據(jù)完整示例
- jQuery實(shí)現(xiàn)異步獲取json數(shù)據(jù)的2種方式
- jQuery訪問json文件中數(shù)據(jù)的方法示例
相關(guān)文章
jquery插件實(shí)現(xiàn)鼠標(biāo)經(jīng)過圖片右側(cè)顯示大圖的效果(類似淘寶)
分享一個(gè)jquery插件:實(shí)現(xiàn)類似淘寶上鼠標(biāo)經(jīng)過圖片右側(cè)顯示大圖的效果,感興趣的朋友可以研究下,或許對(duì)你學(xué)習(xí)jquery有所幫助,千萬不要錯(cuò)過啊2013-02-02jQuery頁面元素動(dòng)態(tài)添加后綁定事件丟失方法,非 live
這篇文章主要介紹了jQuery頁面元素動(dòng)態(tài)添加后綁定事件丟失方法,非 live 的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06jQuery學(xué)習(xí)筆記之 Ajax操作篇(三) - 過程處理
對(duì)于 jQuery 通過 Ajax 方式傳遞數(shù)據(jù)時(shí),我們還可以在過程中進(jìn)行一定的處理,以便達(dá)到我們的需求。2014-06-06jquery實(shí)現(xiàn)文本框數(shù)量加減功能的例子分享
在做商城項(xiàng)目的時(shí)候,需要在購物車中增加一個(gè)商品加減功能,并在加減時(shí)同時(shí)修改總價(jià)格的顯示,并且保證文本框text只能輸入純數(shù)字2014-05-05在jquery中的ajax方法怎樣通過JSONP進(jìn)行遠(yuǎn)程調(diào)用
這一節(jié)主要演示下在JQUERY中的ajax方法怎樣通過JSONP進(jìn)行遠(yuǎn)程調(diào)用,需要的朋友可以參考下2014-04-04基于jQuery實(shí)現(xiàn)點(diǎn)擊同時(shí)更改兩個(gè)iframe的網(wǎng)址
最近寫了兩個(gè)管理后臺(tái)的前端頁面,其中有一個(gè)管理后臺(tái),左側(cè)菜單導(dǎo)航和右側(cè)內(nèi)容頁是兩個(gè)iframe,需求是,點(diǎn)擊上面的主導(dǎo)航時(shí),左側(cè)iframe和右側(cè)iframe調(diào)用不同的鏈接.2010-07-07dul無法加載bootstrap實(shí)現(xiàn)unload table/user恢復(fù)
這篇文章主要介紹了dul無法加載bootstrap實(shí)現(xiàn)unload table/user恢復(fù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09jQuery實(shí)現(xiàn)導(dǎo)航欄頭部菜單項(xiàng)點(diǎn)擊后變換顏色的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)導(dǎo)航欄頭部菜單項(xiàng)點(diǎn)擊后變換顏色的方法,涉及jQuery響應(yīng)鼠標(biāo)事件針對(duì)頁面元素的遍歷及屬性變換相關(guān)操作技巧,需要的朋友可以參考下2017-07-07