xml转json

  |  

安装包

1
2
3
4
5
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.15.3</version>
</dependency>

使用

类定义

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
@Data
@JacksonXmlRootElement(localName = "room")
public class Room {
/**
* 房间名称
*/
@JacksonXmlProperty(localName = "name")
private String name;
/**
* 房间号
*/
@JacksonXmlProperty(localName = "no")
private Integer no;

/**
* 其他信息
*/
@JacksonXmlProperty(localName = "info")
private Info info;

/**
* 学生
*/
@JacksonXmlElementWrapper(localName = "students")
@JacksonXmlProperty(localName = "student")
private List<Student> students;

/**
* 老师
*/
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "teacher")
private List<Teacher> teachers;

@Data
public static class Student {
@JacksonXmlProperty(localName = "name")
private String name;
@JacksonXmlProperty(localName = "age")
private Integer age;
}

@Data
public static class Teacher {
@JacksonXmlProperty(localName = "name")
private String name;
@JacksonXmlProperty(localName = "age")
private Integer age;
}

@Data
public static class Info {
@JacksonXmlProperty(localName = "address")
private String address;
/**
* 人数
*/
@JacksonXmlProperty(localName = "number")
private Integer number;
}
}

toStringXml

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
Room room = new Room();
room.setNo(1);
room.setName("天水一班");
Room.Info info = new Room.Info();
info.setAddress("天水");
info.setNumber(5);
room.setInfo(info);
ArrayList<Room.Teacher> teachers = new ArrayList<>();
Room.Teacher teacher = new Room.Teacher();
teacher.setAge(40);
teacher.setName("王老师");
teachers.add(teacher);
Room.Teacher teacher2 = new Room.Teacher();
teacher2.setAge(45);
teacher2.setName("曾老师");
teachers.add(teacher2);
room.setTeachers(teachers);
ArrayList<Room.Student> students = new ArrayList<>();
Room.Student student = new Room.Student();
student.setAge(18);
student.setName("张三");
students.add(student);
Room.Student student2 = new Room.Student();
student2.setAge(19);
student2.setName("李四");
students.add(student2);
Room.Student student3 = new Room.Student();
student3.setAge(19);
student3.setName("王五");
students.add(student3);
room.setStudents(students);

String xmlString = XmlUtil.toXMLString(room);
System.out.println(xmlString);
// 打印========>

// xmlString = "<room>\n" +
// " <name>天水一班</name>\n" +
// " <no>1</no>\n" +
// " <info>\n" +
// " <address>天水</address>\n" +
// " <number>5</number>\n" +
// " </info>\n" +
// " <students>\n" +
// " <student>\n" +
// " <name>张三</name>\n" +
// " <age>18</age>\n" +
// " </student>\n" +
// " <student>\n" +
// " <name>李四</name>\n" +
// " <age>19</age>\n" +
// " </student>\n" +
// " <student>\n" +
// " <name>王五</name>\n" +
// " <age>19</age>\n" +
// " </student>\n" +
// " </students>\n" +
// " <teacher>\n" +
// " <name>王老师</name>\n" +
// " <age>40</age>\n" +
// " </teacher>\n" +
// " <teacher>\n" +
// " <name>曾老师</name>\n" +
// " <age>45</age>\n" +
// " </teacher>\n" +
// "</room>";

toJson

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
String xmlString = "<room>\n" +
" <name>天水一班</name>\n" +
" <no>1</no>\n" +
" <info>\n" +
" <address>天水</address>\n" +
" <number>5</number>\n" +
" </info>\n" +
" <students>\n" +
" <student>\n" +
" <name>张三</name>\n" +
" <age>18</age>\n" +
" </student>\n" +
" <student>\n" +
" <name>李四</name>\n" +
" <age>19</age>\n" +
" </student>\n" +
" <student>\n" +
" <name>王五</name>\n" +
" <age>19</age>\n" +
" </student>\n" +
" </students>\n" +
" <teacher>\n" +
" <name>王老师</name>\n" +
" <age>40</age>\n" +
" </teacher>\n" +
" <teacher>\n" +
" <name>曾老师</name>\n" +
" <age>45</age>\n" +
" </teacher>\n" +
"</room>";

Room parse = XmlUtil.parse(xmlString, Room.class);
System.out.println(parse);

代码示例

文章目录
  1. 1. 安装包
  2. 2. 使用
    1. 2.1. 类定义
    2. 2.2. toStringXml
    3. 2.3. toJson