包com.thoughtworks.xstream作用:将Java对象和xml之间相互转换
几个常用注解
- @XStreamAlias
设置别名,修改xml标签名为指定名称
例如:
标注属性
@XStreamAlias("sex")
public String gender;
生成xml标签结果
<sex>男</sex>
- @XStreamImplicit
被标注的对象必须是集合或数组,直接以集合或数组元素生成xml标签
例如:
标注属性
@XStreamImplicit
public List<String> hobbies;
生成xml标签结果
<string>play game</string>
<string>vue</string>
- @XStreamOmitField
忽略被标注字段,不用生成xml标签
例如:
标注属性
@XStreamOmitField
public Integer age;
生成xml标签结果
无
- @XStreamAsAttribute
被标注字段会被作为xml根标签的属性
例如:
标注属性
@XStreamAsAttribute
public String name;
生成xml标签结果
<test name="wuy">
完整java代码:
@XStreamAlias("test")
public class Test implements Serializable{
@XStreamAlias("id")
public Integer id;
@XStreamAsAttribute
public String name;
@XStreamOmitField
public Integer age;
@XStreamAlias("sex")
public String gender;
@XStreamImplicit
public List<String> hobbies;
@Override
public String toString() {
return "Test{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
生成xml对象示例:
<test name="wuy">
<id>1</id>
<sex>男</sex>
<string>play game</string>
<string>vue</string>
</test>
常用类
XStream
实例方法说明
XStream stream = new XStream(new DomDriver());
stream.autodetectAnnotations(true); // 设置xstream标签别名生效
stream.processAnnotations(Test.class); // test类上的注解生效
String xml = stream.toXML(test); // 将Java对象转换为xml标签
stream.fromXML(xml); // 将xml标签转换为Java对象