微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

一、jQuery解析Json数据格式:

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

dataType: "json"

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

rush:js;"> jQuery.ajax({ url: full_url,dataType: "json",success: function(results) { alert(result.name); } });

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

jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例

例1

代码如下:

rush:js;"> 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

rush:js;"> $.getJSON("//www.jb51.cc/",{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); }); });

二、jQuery解析Json对象:

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

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

rush:js;"> jQuery.ajax({ url: dataURL,success: function(results) { var parsedJson = jQuery.parseJSON(results); alert(parsedJson.name); } });

补充:

jquery解析json数据完整实例:

rush:js;"> var data=" { root: [ {name:'1',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:'西安市'},value:'铜川市'},value:'宝鸡市'},value:'咸阳市'},value:'商洛市'}]"; var json=eval(jsondata); $.each(json,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,n){ alert(n.orderid); })

一般处理文件(Handler.ashx)

rush:csharp;"> 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字符串 /// /// aram name="dt"> /// 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; } }
rush:js;"> $.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,1); } });

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐