我是靠谱客的博主 包容白猫,这篇文章主要介绍springboot传 xml 和接受 xml 格式的字符串,现在分享给大家,希望可以做个参考。

1. 引入依赖包

2. 实体类添加注解

3.测试

4. postMan 测试结果

1. 引入依赖包

复制代码
1
2
3
4
5
6
<!--请求体 是 application/xml 2entity--> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.9.8</version> </dependency>

2. 实体类添加注解

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.example.demo.entity.xml2entity; 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 java.util.List; /** * @program: springboot_01 * @description: * @author: guoyiguang * @create: 2021-07-01 15:45 **/ @JacksonXmlRootElement(localName ="USER_MESSAGE") public class User { private Integer id; private String name; private String sex; private String phone; private List<UserOrder> orderList; @JacksonXmlProperty(localName = "USER_ID") public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @JacksonXmlProperty(localName = "USER_NAME") public String getName() { return name; } public void setName(String name) { this.name = name; } @JacksonXmlProperty(localName = "USER_SEX") public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @JacksonXmlProperty(localName = "USER_PHONE") public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @JacksonXmlProperty(localName = "USER_ORDERLIST") //集合的话必须添加这个注解 @JacksonXmlElementWrapper(localName ="USER_ORDER_LIST") public List<UserOrder> getOrderList() { return orderList; } public void setOrderList(List<UserOrder> orderList) { this.orderList = orderList; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + ''' + ", sex='" + sex + ''' + ", phone='" + phone + ''' + ", orderList=" + orderList + '}'; } }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.example.demo.entity.xml2entity; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; /** * @program: springboot_01 * @description: 用户订单 * @author: guoyiguang 并添加xml和和bean转换的注解(注意,注解要写在get方法上) * @create: 2021-07-01 15:45 **/ public class UserOrder { private Integer id; private String orderNum; private String orderName; @JacksonXmlProperty(localName = "ORDER_ID") public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @JacksonXmlProperty(localName = "ORDER_NUM") public String getOrderNum() { return orderNum; } public void setOrderNum(String orderNum) { this.orderNum = orderNum; } @JacksonXmlProperty(localName = "ORDER_NAME") public String getOrderName() { return orderName; } public void setOrderName(String orderName) { this.orderName = orderName; } @Override public String toString() { return "UserOrder{" + "id=" + id + ", orderNum='" + orderNum + ''' + ", orderName='" + orderName + ''' + '}'; } }

3.测试

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.example.demo.controller; import com.example.demo.entity.xml2entity.User; import com.example.demo.entity.xml2entity.UserOrder; import org.springframework.web.bind.annotation.*; import java.util.Arrays; /** * @program: springboot_01 * @description: * @author: guoyiguang * @create: 2021-01-16 13:16 **/ //只用 Controller 有可能报 404 @RestController public class Xml2EntityController { @RequestMapping(value = "/xml2entity/getUser",method = RequestMethod.GET, produces = "application/xml") @ResponseBody public User getUser(){ UserOrder order1 = new UserOrder(); order1.setId(1); order1.setOrderNum("1111111111"); order1.setOrderName("1111111111_充话费"); UserOrder order2 = new UserOrder(); order2.setId(2); order2.setOrderNum("22222222223"); order2.setOrderName("2222222222_充话费"); User user1 = new User(); user1.setId(1); user1.setName("张三"); user1.setSex("男"); user1.setPhone("15011133056"); user1.setOrderList(Arrays.asList(order1,order2)); return user1; } @PostMapping(value = "/xml2entity/submitA", consumes = "application/xml") public String submitA(@RequestBody User user){ System.out.println("postman传过来的xml信息转换成实体类如下:=========="); System.out.println(user.toString()); return user.toString(); } @RequestMapping(value = "/xml2entity/submitB") public String submitB(){ return "success"; } }

 

4. postMan 测试结果

复制代码
1
2
3
4
5
6
7
//集合的话必须添加这个注解 @JacksonXmlElementWrapper(localName ="USER_ORDERLIST") //集合内部的元素 @JacksonXmlProperty(localName = "URL") public List<UserOrder> getOrderList() { return orderList; }

 

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@JacksonXmlRootElement public class UserOrder { private Integer id; private String orderNum; @JacksonXmlProperty(isAttribute = true,localName = "stype") public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @JacksonXmlText() public String getOrderNum() { return orderNum; } public void setOrderNum(String orderNum) { this.orderNum = orderNum; } }

最后

以上就是包容白猫最近收集整理的关于springboot传 xml 和接受 xml 格式的字符串的全部内容,更多相关springboot传内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(93)

评论列表共有 0 条评论

立即
投稿
返回
顶部