• Struts的JSON机制


      

      需要加入jar包

     Struts的JSON帮助我们自动将对象解析为JSON对象,不用我门借助第三方进行JSON的解析

    。具体的使用机制如下:

    1.Action类

    package StrutsJSON;
    
    import java.util.ArrayList;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;
    
    import com.opensymphony.xwork2.Action;
    
    import freemarker.template.utility.NormalizeNewlines;
    
    
    public class JSONtest {
        
        private Map<String,Object> map;
        private String name;
        private String password;
        List<User> list ;
        
        
        
    
        public List<User> getList() {
            return list;
        }
    
        public void setList(List<User> list) {
            this.list = list;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public Map<String, Object> getMap() {
            return map;
        }
    
        public void setMap(Map<String, Object> map) {
            this.map = map;
        }
    
        public String execute(){
            System.out.println(11);
            System.out.println(name+"  "+password);
            map = new LinkedHashMap<String,Object>();
    //        测试布尔类型
            map.put("boob", 222);
    //        测试集合类型
            list = new ArrayList<>();
            list.add(new User("qlq", "123456"));
            list.add(new User("qz", "78910"));
            map.put("list", list);
    //        测试字符串类型
            map.put("str", "20");
            this.setMap(map);
    //        测试对象
            map.put("obj", new User("wlw", "22222"));
            return Action.SUCCESS;
        }
    }

    xml配置(注意package继承json-default,json-default已经继承struts-default)

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4     "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 
     6 <struts>
     7 
     8     <constant name="struts.devMode" value="true"></constant>
     9     
    10     <package name="test" extends="json-default">
    11     
    12         <action name="jsontest" class="StrutsJSON.JSONtest">
    13             <result type="json">
    14                 <param name="root">map</param>
    15             </result>
    16         </action>
    17             
    18         
    19     </package>
    20     
    21     
    22  
    23   
    24 </struts>

    2.HTML通过ajax请求JSON数据

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="UTF-8">
     5 <title>测试JSON的页面</title>
     6 <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
     7 <script type="text/javascript">
     8     function fun1() {
     9         alert("开始请求数据");
    10         $.get("jsontest.action", //请求地址
    11         //"name=qlq&password=qlq",   //请求参数
    12         {
    13             "name" : "qlq",
    14             "password" : "nicai"
    15         }, //请求传递的参数,也可以是JSON
    16         function(data) { //data表示传递回来的数据,只有在成功的时候才有
    17              alert(data); 
    18         }, "text" //表示返回内容的格式,json会将传回来的自动解析成json对象
    19         );
    20     }
    21 </script>
    22 </head>
    23 <body>
    24 
    25     <input type="button" value="请求JSON数据" onclick="fun1()">
    26 
    27 
    28 </body>
    29 </html>

    首先测试的是返回的数据格式,打印结果如下

    将上面ajax请求返回数据格式改为json后再进行测试,

    修改后HTML代码:

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="UTF-8">
     5 <title>测试JSON的页面</title>
     6 <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
     7 <script type="text/javascript">
     8     function fun1() {
     9         alert("开始请求数据");
    10         $.get("jsontest.action", //请求地址
    11         //"name=qlq&password=qlq",   //请求参数
    12         {
    13             "name" : "qlq",
    14             "password" : "nicai"
    15         }, //请求传递的参数,也可以是JSON
    16         function(data) { //data表示传递回来的数据,只有在成功的时候才有
    17             /* 测试json数组 */
    18              alert(data.list[0].name+"  "+data.list[0].password); 
    19         /* 测试json对象与单个属性 */
    20              alert(data.obj.name+"  "+data.str); 
    21         }, "json" //表示返回内容的格式,json会将传回来的自动解析成json对象
    22         );
    23     }
    24 </script>
    25 </head>
    26 <body>
    27 
    28     <input type="button" value="请求JSON数据" onclick="fun1()">
    29 
    30 
    31 </body>
    32 </html>

    结果如下:

                                        

  • 相关阅读:
    【java学习笔记】反射基础
    【java学习笔记】线程
    【java学习笔记】Properties
    【java学习笔记】序列化、反序列化
    Java Review (二十六、集合----- Set 集合)
    Java Review (二十五、集合----- Iterator接口)
    Java Review (二十四、集合-----Collection 接口)
    Java Review (二十三、集合-----概述)
    Java Review (二十二、正则表达式)
    Java Review (二十一、基础类库----日期、时间类)
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/7186507.html
Copyright © 2020-2023  润新知