使用springMVC注解@ResponseBody与jackson工具类在ajax请求中实现对象与json之间的相互转化

1.springmvc默认使用jackson来实现对象与json之间的相互转换的。在转换之前我需要引入两个springMVC依赖的两个jar包:
 jackson-core-asl(jackson核心包)和jackson-mapper-asl(json与对象转换工具包)
   获取jar包的方式:

  maven项目中的配置坐标如下:

   
    org.codehaus.jackson  
    jackson-mapper-asl  
    1.9.13  
  
  
  
    org.codehaus.jackson  
    jackson-core-asl  
    1.9.13  
  
web工程的方式:直接在网上搜索相应的jar包下载下来,放入工程的lib目录下即可。
 2.开启springMVC的注解功能
   在springMVC项目中的*-dispacter.xml文件中配置(表示开启springMVC的注解功能)
  
  
      
      
      
     ................  
     
3.实现代码
    定义一个对象:
public class Agent {  
            private String   agentName;  
            private Integer   agentId;  
            private String   address;  
            public String getAgentName() {  
                return agentName;  
            }  
            public void setAgentName(String agentName) {  
                this.agentName = agentName;  
            }  
            public Integer getAgentId() {  
                return agentId;  
            }  
            public void setAgentId(Integer agentId) {  
                this.agentId = agentId;  
            }  
            public String getAddress() {  
                return address;  
            }  
            public void setAddress(String address) {  
                this.address = address;  
            }  
  
        }  
  例如:在ajax请求springMVC的Controller方法后需要返回一个json格式的用户列表,则Conroller中的方法可以写成如下的方式:
/** 
    * 获取所有用户列表 
    */  
   @RequestMapping(value="getUserList",method=RequestMethod.GET)  
   public @ResponseBody List getUserList(HttpServletRequest request, HttpServletResponse response){  
       //模拟数据创建一个数据对象1  
       Agent agent1 = new Agent();  
       agent1.setAgentName("张三");  
       agent1.setAgentId(18);  
       agent1.setAddress("北京市");  
       //模拟数据创建一个数据对象2  
       Agent agent2 = new Agent();  
       agent2.setAgentName("张三");  
       agent2.setAgentId(18);  
       agent2.setAddress("上海市");        
       List userList = new ArrayList();  
       userList.add(agent1);  
       userList.add(agent2);  
       return userList;  
   }  
  1. 返回json数据:[{"agentId"18,"agentName""张三","address""北京市"},{"agentId"18,"agentName":  "张三","address""上海市"}]  


在Controller需要返回一个对象的json数据格式 
/** 
     * 获取所有用户列表 
     */  
    @RequestMapping(value="getUserList",method=RequestMethod.GET)  
    public @ResponseBody Agent getUser(HttpServletRequest request, HttpServletResponse response){  
        //模拟数据创建一个数据对象1  
        Agent agent = new Agent();  
        agent.setAgentName("张三");  
        agent.setAgentId(18);  
        agent.setAddress("北京市");  
        return agent;  
    }  

返回json数据:{"agentId": 18,"agentName": "张三","address": "北京市"}
 
 上面的两种方式返回了list和对象的json数据格式,其他的比如map、string 等数据类型都可经过springMVC的处理返回json格式的数据


你可能感兴趣的:(springMVC,java,spring,mvc)