ajax和json跟java实现List、Map直接传递

前端之家收集整理的这篇文章主要介绍了ajax和json跟java实现List、Map直接传递前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于项目需要通过ajax得到后台的List对象里面的值,由于没有接触过json所以前期我只能先传字符串再在js里截取子串实现。闲暇时间摸索了一下关于json接受List对象的方法,步骤如下:
1.首先下载json所以依赖的包, Json-lib 最新版 json-lib-2.3-jdk15.jar,其官方网站是: http://json-lib.sourceforge.net/可以直接download,细心的你会发现其网站页面里面有提示它还需要其他包:
Json-lib requires (at least) the following dependencies in your classpath:
•jakarta commons-lang 2.4
•jakarta commons-beanutils 1.7.0
•jakarta commons-collections 3.2
•jakarta commons-logging 1.1.1
•ezmorph 1.0.6
下载地址分别是:
http://commons.apache.org/lang/
http://commons.apache.org/beanutils/
http://commons.apache.org/collections/
http://commons.apache.org/logging/
http://ezmorph.sourceforge.net/
2.首先先见一个小web项目
先建一个User类:
Java代码
  1. packagecom.json;
  2. publicclassUser{
  3. Stringusername;
  4. Stringpassword;
  5. publicStringgetUsername(){
  6. returnusername;
  7. }
  8. voidsetUsername(Stringusername){
  9. this.username=username;
  10. publicStringgetPassword(){
  11. returnpassword;
  12. voidsetPassword(Stringpassword){
  13. this.password=password;
  14. }

再建一个servlet
importjava.io.IOException;
  • importjava.io.PrintWriter;
  • importjava.util.ArrayList;
  • importjava.util.List;
  • importjavax.servlet.ServletException;
  • importjavax.servlet.http.HttpServlet;
  • importjavax.servlet.http.HttpServletRequest;
  • importjavax.servlet.http.HttpServletResponse;
  • importnet.sf.json.JSONArray;
  • classTestJsonextendsHttpServlet{
  • voiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
  • throwsServletException,IOException{
  • doPost(request,response);
  • voiddoPost(HttpServletRequestrequest,250)"> response.setContentType("text/html");
  • Stringstr=request.getParameter("name");//得到ajax传递过来的paramater
  • System.out.print(str);
  • PrintWriterout=response.getWriter();
  • Listlist=newArrayList();//传递List
  • Mapm=newHashMap();//传递Map
  • Useru1=newUser();
  • u1.setUsername("zah");
  • u1.setPassword("123");
  • Useru2= u2.setUsername("ztf");
  • u2.setPassword("456");
  • list.add(u1);//添加User对象
  • list.add(u2); m.put("u1",u1);
  • m.put("u2",u2);
  • JSONArrayjsonArray2=JSONArray.fromObject(list);
  • //把java数组转化成转化成json对象
  • JSONObjectjo=JSONObject.fromObject(m);//转化Map对象
  • out.print(jsonArray2);//返给ajax请求
  • out.print(jo); 配置好web.xml中的servlet映射,这一步就略了。


  • 3.建立ajax实现
    这里为了快速实现用的是jquery实现的。
    <scripttype="text/javascript"src="js/jquery.js"></script>
  • <scripttype="text/javascript">
  • functiontest(){
  • $.ajax({
  • type:"POST",//请求方式
  • url:"testjson",0); padding:0px; margin:0px; width:auto; border:0px">//请求路径
  • cache:false,
  • data:"name=zah",0); padding:0px; margin:0px; width:auto; border:0px">//传参
  • dataType:'json',0); padding:0px; margin:0px; width:auto; border:0px">//返回值类型
  • success:function(json){
  • alert(json[0].username+""json[0].password);//弹出返回过来的List对象
  • });
  • </script>
  • </head>
  • <body>
  • <inputtype="button"name="b"value="测试"onclick=test()>
  • </body>


  • 测试开始,点击按钮弹出zah 123
    json[0]就相当于u1对象 json[1]相当于u2对象,对于其属性的访问跟java对象一样,其他的Connection测试应该一样,访问Map的话直接把返回函数改成如下即可:
    alert(json.u1.username)
  • }

  • }直接跟上Key.属性即可访问Object对象。
    项目源码在下面

    原文链接:https://www.f2er.com/ajax/163370.html

    猜你在找的Ajax相关文章