在maven工程中引入依赖
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.14</version>
</dependency>
编写序列化和反序列化所需的工具类
public class xmlUtil {
//序列化
public static String toxStreamXML(Object obj){
XStream xStream = new XStream(new DomDriver(null,
new XmlFriendlyNameCoder("__", "_")));//下划线转化
xStream.processAnnotations(obj.getClass());
String xml = xStream.toXML(obj);
return xml;
}
//反序列化
public static XStream xStreamXMLToObject(Object obj){
XStream xstream = new XStream(new DomDriver(null,
new XmlFriendlyNameCoder("__", "_"))){
@Override
protected MapperWrapper wrapMapper(MapperWrapper next){
return new MapperWrapper(next) {
@Override
public boolean shouldSerializeMember(Class definedIn, String fieldName){
if (definedIn == Object.class){
try {
return this.realClass(fieldName) != null;
} catch (Exception e){
return false;
}
} else {
return super.shouldSerializeMember(definedIn, fieldName);
}
}
};
}
};//下划线转化
//不使用默认的类加载器,需要手动设置类加载器
xstream.setClassLoader(obj.getClass().getClassLoader());
//安全防护
XStream.setupDefaultSecurity(xstream);
xstream.autodetectAnnotations(true);
//每转换一个实体需要加入到这个数组。
xstream.allowTypes(new Class[]{
obj.getClass()});
//声明XStream注解来源 实现注解
xstream.processAnnotations(new Class[] {
obj.ge