AJAX配合json和 jquery使用

AJAX配合json和 jquery使用

AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下

它的传统用法比较复杂,配合json和jquery使用会简单很多

格式:(需导入jquery文件,并放入js函数中使用)

$.ajax({    
url:请求地址    
type:"get | post | put | delete " 默认是get,   
data:请求参数 {"id":"123","pwd":"123456"},    
dataType:请求数据类型"html | text | json | xml | script | json ",   
 success:function(data,dataTextStatus,jqxhr){ },//请求成功时                    
  error:function(jqxhr,textStatus,error)//请求失败时 })

dataTpye常用json类型

JSON:数据交换语言

json对象的用法:

<script type="text/javascript">
 
        // json的定义         
 
        var jsons = {
 
                "key1":"abc", // 字符串类型
 
                "key2":1234,  // Number
 
                "key3":[1234,"21341","53"], // 数组
 
                "key4":{                    // json类型
 
                    "key4_1" : 12,
 
                    "key4_2" : "kkk"
 
                },
 
                "key5":[{                  // json数组
 
                    "key5_1_1" : 12,
 
                    "key5_1_2" : "abc"
 
                },{
 
                    "key5_2_1" : 41,
                    "key5_2_2" : "bbj"
 
                }]
 
        };
 
        // 访问json对象的属性        
        alert(jsons.key1); // "abc"        
        // 访问json的数组属性        
        alert(jsons.key3[1]); // "21341"        
        // 访问json的json属性        
        alert(jsons.key4.key4_1);//12        
        // 访问json的json数组        
        alert(jsons.key5[0].key5_1_2);//"abc"   
  </script>

json最常用法:

在Javaweb中把要传到前端的数据转换成json对象,然后通过servlet响应方法传到前端页面,最后在前端js代码中访问得到的json对象的数据

json在java中的转换

(需要到如对应的jar包)

《1》单个对象的转换

java->json:

Users user2=new Users(); 
user2.setUsername("李四"); 
user2.setPassword("abc");
user2.setAge(20); 
JSONObject obj=JSONObject.fromObject(user);//obj就是json格式的

json->java:

String str="{'username':'李四','password':'admin','age':19}"; 
JSONObject json=JSONObject.fromObject(str); 
Users user=(Users)JSONObject.toBean(json,Users.class);

《2》对象集合和json数组的转换

java集合->json数组:

List list=new ArrayList();
list.add("dd"); 
list.add("aa"); 
JSONArray obj=JSONArray.fromObject(list);//set也是这么转

json数组->java集合:

方式1:

String str2="[{'age':20,'password':'abc','username':'李四'}, 
{'age':10,'password':'adb','username':'张三'}]"; 
JSONArray json2=JSONArray.fromObject(str2); Object[]; 
obj=(Object[])JSONArray.toArray(json2,Users.class);

方式2:

String str3="[{'age':20,'password':'abc','username':'李四'}, 
{'age':10,'password':'adb','username':'展示干'}]";
 
JSONArray json3=JSONArray.fromObject(str3);
//默认转换成ArrayList
 List<Users> list=(List<Users>) 
 JSONArray.toCollection(json3,Users.class);
ajax实例:实现数据的自动填充

前端页面:

 <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>   
 <script>      
    $(function(){          
       $("[name='uid']").blur(function(){               
            var uid=$(this).val();               
            $.ajax({                   
                 url:"getuser",                   
                 data:"userid="+uid,                   
                 type:"post",                   
                 dataType:"JSON",//设置服务器端响应回来的格式                   
                 success:function(rs){                       
                     //alert(rs.username);                       
                    $("[name='uname']").val(rs.username);                      
                    $("[name='address']").val(rs.address);                       
                    if(rs.sex=='男'){                         
                        $("#boy")[0].checked=true;                       
                    }else{                          
                        $("#girl")[0].checked=true;                      
                    }                 
                }
 
            });
        });

    })
 
 </script> 
 <body> 
   userid:<input type="text" name="uid"><br> 
   username <input type="text" id="uname" name="uname"><br> 
   address <input type="text" id="address" name="address"><br> 
   sex:<input type="radio" name="sex" id="boy"><input type="radio" name="sex" id="girl"></body>

后台:

实体类:

public class Users {   
    private String username;    
    private String password;    
    private String address;    
    private String sex; } 

servlet处理类:

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws
           ServletException, IOException {  
    
    String userid=req.getParameter("userid");//获得前端传来的参数,即ajax的data传入的数据
    Users users=new Users();    
    switch (Integer.parseInt(userid)){        
        case 1:            
            users.setUsername("张安");            
            users.setAddress("北京");            
            users.setSex("男");            
            break;        
        case 2:           
            users.setUsername("张安1");            
            users.setAddress("北京2");           
            users.setSex("女");            
            break;       
        case 3:           
            users.setUsername("张安3");            
            users.setAddress("北京3");           
            users.setSex("男");           
            break;        
        default:            
            users.setUsername("");            
            users.setAddress("");            
            users.setSex("");   
    }    
    //将users对象响应给客户端,使用PrintWriter来实现
    resp.setContentType("text/html;charset=utf-8");   
    PrintWriter writer = resp.getWriter();
 
    //将对象转换成json格式    
    JSONObject jsonObject = JSONObject.fromObject(users);   
    writer.print(jsonObject);
 
 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值