springmvc返回json/xml格式的数据

返回json数据需要加入如下jackson依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.5</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.5</version>
</dependency>

指定请求数据类型Accept:application/json
在controller中利用produces指定响应类型为application/json即可
代码片段:

@RequestMapping(value = "/test1",produces = "application/json")
    @ResponseBody
    public JsonDate test1(HttpServletRequest request){
        String accept = request.getHeader("accept");
        System.out.println(accept);
        return new JsonDate(true,"ok");
    }

若要指定返回类型为xml格式的数据,则除了加如上的依赖还需下面的依赖:

<!--返回xml格式的数据-->
 <dependency>
     <groupId>com.fasterxml.jackson.dataformat</groupId>
     <artifactId>jackson-dataformat-xml</artifactId>
     <version>2.8.5</version>
 </dependency>
 <dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-annotations</artifactId>
     <version>2.8.5</version>
 </dependency>
 <dependency>
     <groupId>com.fasterxml.jackson.module</groupId>
     <artifactId>jackson-module-jaxb-annotations</artifactId>
     <version>2.8.5</version>
 </dependency>
 <dependency>
     <groupId>org.codehaus.woodstox</groupId>
     <artifactId>stax2-api</artifactId>
     <version>3.1.4</version>
 </dependency>
 <dependency>
     <groupId>com.fasterxml.woodstox</groupId>
     <artifactId>woodstox-core</artifactId>
     <version>5.0.3</version>
 </dependency>

同样,指定请求数据类型Accept:application/xml
在controller中利用produces指定响应类型为application/xml即可
代码片段:

@RequestMapping(value = "/test2",produces = "application/xml")
    @ResponseBody
    public JsonDate test2(HttpServletRequest request){
        String accept = request.getHeader("accept");
        System.out.println(accept);
        return new JsonDate(true,"ok");
    }

这样就可以返回xml格式的数据了!
当然也可以动态确定返回类型是json/xml,根据请求中的Acceptl来动态设置响应数据格式
代码片段:

 @RequestMapping(value = "/test3")
 @ResponseBody
 public JsonDate test3(HttpServletRequest request, HttpServletResponse response){
     String accept = request.getHeader("accept");
     System.out.println(accept);
     response.setHeader("accept",accept);
     return new JsonDate(true,"ok");
 }

其实最简单的实现方式是通过aop代理来实现,原理也是一样的!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值