随笔笔记二——SpringMVC操作json数据

Spring mvc处理json需要使用jackson的类库,使用maven工具时,需要为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用

 
        <dependency>
            <groupId>org.codehaus.jacksongroupId>
            <artifactId>jackson-core-lgplartifactId>
            <version>1.8.1version>
        dependency>

        <dependency>
            <groupId>org.codehaus.jacksongroupId>
            <artifactId>jackson-mapper-lgplartifactId>
            <version>1.8.1version>
        dependency>

1、在spring mvc中解析输入为json格式的数据有两种方式 

1:使用@RequestBody来设置输入

@RequestMapping("/json1")
    @ResponseBody
    public JsonResult testJson1(@RequestBody User u){
        log.info("get json input from request body annotation");
        log.info(u.getUserName());
        return new JsonResult(true,"return ok");
}

2:使用HttpEntity来实现输入绑定

@RequestMapping("/json2")    
    public ResponseEntity testJson2(HttpEntity u){
        log.info("get json input from HttpEntity annotation");
        log.info(u.getBody().getUserName());
        ResponseEntity responseResult = new ResponseEntity( new JsonResult(true,"return ok"),HttpStatus.OK);
        return responseResult;
}
2、SpringMVC返回json数据的三种方式

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。

如: 

或者

同样要用jackson的jar包。


2、第二种使用JSON工具将对象序列化成json,常用工具Jackson,fastjson,gson。

利用HttpServletResponse,然后获取response.getOutputStream()或response.getWriter()

public class JsonUtil
{
    private static Gson gson=new Gson();
    /**
     * @MethodName : toJson
     * @Description : 将对象转为JSON串,此方法能够满足大部分需求
     * @param src :将要被转化的对象
     * @return :转化后的JSON串
     */
    public static String toJson(Object src) {
        if (src == null) {
            return gson.toJson(JsonNull.INSTANCE);
        }
        return gson.toJson(src);
    }
}


3、第三种利用spring mvc3的注解@ResponseBody

例如:

@ResponseBody
  @RequestMapping("/list")
  public List list(ModelMap modelMap) {
    String hql = "select c from Clothing c ";
    Page page = new Page();
    page.setPageSize(6);
    page  = clothingServiceImpl.queryForPageByHql(page, hql);
    
    return page.getResult();
  }

然后使用spring mvc的默认配置就可以返回json了,不过需要jackson的jar包哦。

注意:当springMVC-servlet.xml中使用时,如果是3.1之前已经默认注入AnnotationMethodHandlerAdapter,3.1之后默认注入RequestMappingHandlerAdapter只需加上上面提及的jar包即可!

如果是手动注入RequestMappingHandlerAdapter 可以这样设置

配置如下:


			
				
				
				
			
		



你可能感兴趣的:(随笔,学习总结)