我们开开发中经常有不同的返回需求,下面就在sprintboot中根据请求头Accept 返回xml或json的方法
首先添加依赖:
<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </dependency>
然后在请求是在请求头里面带上对应的Accept :
Accept :application/json
Accept :application/xml
JackSonXml还有一些其他标签:
@JacksonXmlRootElement(localName = "XPerson")//用在类上,用来自定义根节点名称; public class Person { @JacksonXmlProperty(localName = "key") //用在属性上,用来自定义子节点名称; private Long id; private String name; }
说明:
@JacksonXmlRootElement: 用在类上,用来自定义根节点名称;
@JacksonXmlProperty: 用在属性上,用来自定义子节点名称;
@JacksonXmlElementWrapper: 用在属性上,可以用来嵌套包装一层父节点,或者禁用此属性参与 XML 转换。
这些标签只对返回xml的时候有效,返回json无用
效果:
补充说明:
在配置文件中加入:
spring.mvc.contentnegotiation.favor-parameter=true
就可以在请求是上fromate=json/xml 就会返回相应的数据:
例如:
xml效果:
json效果:
两种方式都可以实现