使用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;
    }
    返回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格式的数据





你可能感兴趣的:(spring)