在maven中添加依赖
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
controller方法上的Mapping注解要添加属性,,produces = "application/xml; charset=UTF-8"
同是配合使用的注解是
@JacksonXmlRootElement(localName = "xml") 打在类上
@JacksonXmlProperty(localName = "ToUserName") 打在属性上
有一点值得注意的是,如果属性名称和java的属性命名规范有冲突,比如非驼峰命名,首字母不能大写,那么最终转换出去的xml属性会有重复的,解决方法有两种
1.首字符小写,驼峰命名
2.将注解标注在get方法上
package com.ssm.shopweixinapi.dto.weixin.message;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import com.ssm.shopweixinapi.dto.weixin.ArticleItem;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author xiaogang
* @date 2018/12/14 12:14
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@JacksonXmlRootElement(localName = "xml")
public class NewsMessage {
@JacksonXmlProperty(localName = "ToUserName")
private String toUserName;
@JacksonXmlProperty(localName = "FromUserName")
private String fromUserName;
@JacksonXmlProperty(localName = "CreateTime")
private String createTime;
@JacksonXmlProperty(localName = "MsgType")
private String msgType;
@JacksonXmlProperty(localName = "ArticleCount")
private String articleCount;
@JacksonXmlElementWrapper(localName = "Articles")
@JacksonXmlProperty(localName = "item")
private List<ArticleItem> articles;
}