轻松玩转json与jQuery的交互

2 篇文章 0 订阅

说到交互不得不提的就是:jQuery的$.ajax(),$.post(),$.get(),$.getJson()

$.ajax()是后几种的综合,他可以完成后几种的任何请求,以下讲述以$.ajax()为例。

$.ajax({
  type: "GET",//以GET方式发送请求
  url: "路径",
  data:{username:"",password:""}
  dataType: "json"
  success:function(data){
                $('.parms_query .recordId').empty();
                alert(data.length);
                if(0==data.length){
                    var option = $("<option>").val("").text(无文档);
                    $('.parms_query .recordId').append(option);
                }else{
                    $.each(data,function(i,item){
                        var option = $("<option>").val(item.seq).text(item.originalName);
                        $('.parms_query .recordId').append(option);
                    })
                }
            
   }
 });
如果dataType设置为json:如果服务器(比如springmvc的@RequestBody标记的方法的return值)返回的是object组成的链表(List)jQuery把它解析成数组Array

值得注意的是,$.each()遍历Map的时候,function()中的参数是key和value,十分方便。

如果jquery异步请求没做dataType说明,对于服务器返回的JSON字符串,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:

var dataObj=eval("("+data+")");//转换为json对象
alert(dataObj.root.length);//输出root的子对象数量
$.each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}
//输出每个root子对象的名称和值
alert("name:"+item.name+",value:"+item.value);
})
注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值