이 문서의 예에서는 jquery가 json 형식 데이터를 구문 분석하는 방법을 설명합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
Json 데이터는 실시간 교환에 흔히 사용되는 작은 데이터입니다. jquery 또는 js를 사용하여 구문 분석할 수 있습니다. 다음으로 json 문자열을 구문 분석하는 jquery 방법을 소개하겠습니다.
1. jQuery는 Json 데이터 형식을 구문 분석합니다.
이 방법을 사용하면 Ajax 요청에 매개변수를 설정해야 합니다.
데이터 유형: "json"
콜백 함수에서 반환된 데이터를 가져와서 구문 분석하여 원하는 값을 얻습니다.
소스 코드를 참조하세요.jQuery.ajax({ url: full_url, dataType: "json", success: function(results) { alert(result.name); } });
일반적으로 백그라운드에서 JSON 데이터를 반환하고 프런트엔드를 jQuery에 맡길 수 있습니다. 하하! !
Jquery 비동기 요청은 유형(일반적으로 이 구성 속성)을 "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:'商洛市'} ] }";
제이쿼리
$.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); }); });
2. jQuery는 Json 객체를 구문 분석합니다.
jQuery는 표준 JSON 문자열을 사용하여 결과 JavaScript 객체를 반환하는 또 다른 메서드 "parseJSON"을 제공합니다. 구문을 살펴보겠습니다.
jQuery.ajax({ url: dataURL, success: function(results) { var parsedJson = jQuery.parseJSON(results); alert(parsedJson.name); } });
보충:
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); })
일반 처리 파일(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> /// 构建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++) { //如果值不是最后一个则添加逗号分隔 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; } }
$.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 + "<br/>网址:<a href=" + result[i].url + " mce_href=" + result[i].url + " target='_blank'>" + result[i].url + "</a><br/>"; datas += "项目名称:" + result[i].ProName + "<br/>网址:<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); } });
이 기사가 jQuery 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.