站长资讯网
最全最丰富的资讯网站

jquery如何读取json参数

jquery读取json参数的方法:1、使用jQuery解析Json数据格式,在Ajax请求中设置参数【dataType: "json"】;2、使用jQuery解析Json对象,代码为【data = $.parseJSON string】。

jquery如何读取json参数

本教程操作环境:windows7系统、jquery3.2.1版本,该方法适用于所有品牌电脑。

推荐:jquery视频教程

jquery读取json参数的方法:

一、jQuery解析Json数据格式:

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

dataType: "json"

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

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

通常情况下,你可以从后台返回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:'商洛市'}  ]  }";

jquery

$.getJSON("https://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);  });  });

二、jQuery解析Json对象:

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

代码如下:

data = $.parseJSON(string);

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

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);    } });

相关免费学习推荐:javascript(视频)

赞(0)
分享到: 更多 (0)

网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号