前言
在业务需要的情况下,偶尔需要使用到xml的序列化,有部分同学使用的是手动拼写xml,个人感觉不太优雅,还是喜欢序列化工具,本文推荐使用XStream。
实现步骤
- 引入依赖
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.7</version>
</dependency>
- 创建自定义实体
public class User {
private String userName;
private int age;
private String sex;
}
- 创建对象并xml序列化
User user = new User();
user.setUserName("张三");
user.setAge("25");
user.setSex("男");
XStream xstream = new XStream();
xstream.toXML(user);
结果为
<com.example.test.User>
<userName>张三</userName>
<age>25</age>
<sex>男</sex>
</com.example.test.User>
从结果可以看到序列化生成的根节点是全路径的,有时不太符合我们需求。
针对这一块,我们可以使用XStream的alias来自定义根节点名称,如:
xstream.alias(user.getClass().getSimpleName(), user.getClass());
xstream.toXML(user);
结果为
<User>
<userName>张三</userName>
<age>25</age>
<sex>男</sex>
</User>