- 先在pom文件中引入依赖包
<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.9.0</version> </dependency>
- 内联网关使用的xml 和json相互转化的情况
- 编写请求实体(懒得用自己当前使用的了,直接copy别人的实体类)
-
@JacksonXmlRootElement(localName = "message")(这个注解的用处没感觉出来,因为之前做好了额转化工具,第一次使用,没人用过集合,就我在用,注解不会使用,特意百度了一波) public class UserRequest { @JacksonXmlElementWrapper(localName = "userlist") // 外围集合的注解 @JacksonXmlProperty(localName = "user") //属性的注解 private List<User> userList; public List<User> getUserList() { return userList; } public void setUserList(List<User> userList) { this.userList = userList; }
// 实体类 public class User { @JacksonXmlProperty(localName = "idcard") private String idCard; @JacksonXmlProperty(localName = "username") private String name; @JacksonXmlProperty(localName = "sex") private String sex; @JacksonXmlProperty(localName = "age") private int age;
}
-
- 扩展说明
@JacksonXmlElementWrapper:可用于指定List等集合类,外围标签名;(当时做xml映射到的时候,出现了两个同名 list 特意百度总结了一下)
@JacksonXmlProperty:指定包装标签名,或者指定标签内部属性名;
@JacksonXmlRootElement:指定生成xml根标签的名字;
@JacksonXmlText:指定当前这个值,没有xml标签包裹。
实体bean中也可以使用 @XmlRootElement 和@XmlElement这个标签,分别对应于@JacksonXmlRootElement 和@JacksonXmlProperty
响应结果: 其他的地方还有很多的请求头信息可以添加进来
<?xml version="1.0" encoding="UTF-8"?>
<message>
<userlist>
<user>
<age>22</age>
<idcard>1333232432433</idcard>
<username>ddsf</username>
<sex>N</sex>
</user>
</userlist>
</message>