版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013181912/article/details/79055661
返回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代理来实现,原理也是一样的!