jquery解析json格式数据的方法(对象、字符串)_jquery

WBOY
Freigeben: 2016-05-16 15:30:12
Original
4466 Leute haben es durchsucht

本文实例讲述了jquery解析json格式数据的方法。分享给大家供大家参考,具体如下:

json数据是我们常用的一种小型的数据实时交换的一个东西,他可以利用jquery或js进行解析,下面我来介绍jquery解析json字符串方法。

一、jQuery解析Json数据格式:

使用这种方法,你必须在Ajax请求中设置参数:

dataType: "json"

获取通过回调函数返回的数据并解析得到我们想要的值,看源码:

jQuery.ajax({ url: full_url, dataType: "json", success: function(results) { alert(result.name); } });
Nach dem Login kopieren

通常情况下,你可以从后台返回JSON数据,前台就交给jQuery啦,哈哈!!

jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.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:'商洛市'} ] }";
Nach dem Login kopieren

jquery

$.getJSON("http://www.jb51.net/",{param:"sanic"},function(data){ //此处返回的data已经是json对象 //以下其他操作同第一种情况 $.each(data.root,function(idx,item){ if(idx==0){ return true;//同countinue,返回false同break } alert("name:"+item.name+",value:"+item.value); }); });
Nach dem Login kopieren

二、jQuery解析Json对象:

jQuery提供了另一种方法“parseJSON”,这需要一个标准的JSON字符串,并返回生成的JavaScript对象。让我们来看看语法:

复制代码代码如下:
data = $.parseJSON(string);

看看它是如何运用的到实际开发中的:

jQuery.ajax({ url: dataURL, success: function(results) { var parsedJson = jQuery.parseJSON(results); alert(parsedJson.name); } });
Nach dem Login kopieren

补充:

jquery解析json数据完整实例:

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为字符串类型 则要将字符串类型转换成json数据类型 var jsondatas=eval("("+data+")"); $.each(jsondatas.root,function(i,n){ alert("name"+n.name+"value"+n.value); } ) //以下为数组类型字符串 转换成json 字符串 解析 //数组形式的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);//根据索引取值 }); //json数据字符 不需要转换 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); })
Nach dem Login kopieren

一般处理文件(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(); } } } ///  /// 构建JSON字符串 ///  ///  ///  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++) { //如果值不是最后一个则添加逗号分隔 if (j < dt.Columns.Count - 1) { sb.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + "/"" + dt.Rows[i][j].ToString() + "/","); } //如果值为最后个字符则不添加逗号 else if (j == dt.Columns.Count - 1) { sb.Append("/"" + dt.Columns[j].ColumnName.ToString() + "/":" + "/"" + dt.Rows[i][j].ToString() + "/""); } } //如果为最后一个值的话 则不添加逗号 if (i == dt.Rows.Count - 1) { sb.Append("}"); } else { sb.Append("},"); } } sb.Append("]"); return sb.ToString(); } else { return null; } }
Nach dem Login kopieren
$.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来解析返回数组字符串 for (var i = 0; i < temp.length; i++) { o.innerHTML += "项目名称:" + result[i].ProName + "
网址:" + result[i].url + "
"; datas += "项目名称:" + result[i].ProName + "
网址:" + result[i].url + "
"; } TINY.box.show(datas, 0, 0, 0, 1); } });
Nach dem Login kopieren

希望本文所述对大家jQuery程序设计有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!