• 技术文章 >web前端 >js教程

    jquery如何读取json参数

    coldplay.xixicoldplay.xixi2021-01-07 18:26:43原创1166

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

    本教程操作环境:windows7系统、jquery3.2.1版本,Dell G3电脑。

    推荐: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(视频)

    以上就是jquery如何读取json参数的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:jquery json参数
    上一篇:js的基本七种数据类型是什么 下一篇:jquery如何用this选择子元素
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• java利用json文件来实现数据库数据的导入导出• php 数组如何转换成json• jQuery getJSON()方法怎么用• react中如何引用json
    1/1

    PHP中文网