设为首页 加入收藏

TOP

Java基础——JSON(二)
2017-10-16 18:20:33 】 浏览:3813
Tags:Java 基础 JSON
ext/html;charset=utf-8"); response.getWriter().print(str); }

二、JSONlib 的使用(两步) 

1) 导入 JSON lib的包

commons-beanutils-1.8.2.jar

commons-collections-3.2.1.jar

commons-lang-2.5.jar

commons-logging-1.1.1.jar

ezmorph-1.0.6.jar

JSON-lib-2.4-jdk15.jar

2) 使用

public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            String userName=request.getParameter("userName");
            UserInfo user= UserDao.getUserByName(userName);
            //使用JSONlib提供的功能,将一个类对象转成JSON格式的字符串
            JSONObject JSONObj=JSONObject.fromObject(user);
            System.out.println(JSONObj);
            
            response.setContentType("text/html;charset=utf-8");
            response.getWriter().print(JSONObj.toString());    
        }
    }
//例子,如何使用 JSONlib 返回一组数组
     //服务端
         public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            List<UserInfo> userList=UserDao.getAllUser();
            
            //如果要转一个对象, 用JSONObject,转多个对象(List),用 JSONArray 
            JSONArray JSONObj= JSONArray.fromObject(userList);
            
            response.setContentType("text/html;charset=utf-8" );
            response.getWriter().print(JSONObj);
     }
     
     //客户端
         $(function(){
            $("button").click(function(){
                $.ajax({
                    url:"JSONArrayTestServlet",  
                    type:"post",
                    dataType:"JSON",  
                    success:function(userList){
                        
                    //取出数据的第一种方式
                    /*     for(var i=0;i<userList.length;i++){
                            alert(userList[i].id);
                            var trStr="<tr><td>"+userList[i].id+"</td><td>"+userList[i].userName+
                            "</td><td>"+userList[i].password+"</td><td>"+userList[i].note+"</td></tr>"; 
                            $("#table1").append(trStr);
                        } */
                        
                        
                        //使用 $.each() 的方式
                        $.each(userList,function(key,user){
                             var trStr="<tr><td>"+user.id+"</td><td>"+user.userName+
                            "</td><td>"+user.password+"</td><td>"+user.note+"</td></tr>"; 
                            $("#table1").append(trStr); 
                        });
                    }
                });
            });
        });
//例子 将JSON字符串反序列化为 java对象
  String JSONStr= "{\"id\":99,\"userName\":\"张三\",\"password\":\"admin\",\"note\":\"备注\",\"aihao\":\"球类\"}" ;
  JSONObject JSONObj=JSONObject.fromObject(JSONStr);
            
//注意,UserInfo 类,一定要有一个无参的构造函数
  UserInfo user=(UserInfo)JSONObject.toBean(JSONObj,UserInfo.class);

三、Ajax联动菜单

    //请求发起页面
        $(function(){
            $("#bigCate").change(function(){
                //取出自己的被选中的option 的 value (它应该是小分类对应的parentId)
                var parentId=this.value ;
                
                //根据这个parentId去数据库查询,
                $.ajax({
                    url:"CateAjaxServlet",
                    cache:false,
                    data:{parentId:parentId},
                    dataType:"JSON",
                    success:function(cateList){
                        //把取务端返回的小分类的列表,拼到小分类对应的下拉框中,但要先清空一下
                        $("#smallCate").empty();
                        $.each(cateList,function(key,cateInfo){
                            var optionStr="<option value='"+cateInfo.id+"'>"+cateInfo.cateName+"</option>";
                            $("#smallCate").append(optionStr);
                        });
                        
                    }
                });    
            });
        });
        
        <body>
      <%
          List<CateInfo>
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇java-Servlet 下一篇Spring Boot Starter 介绍

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目