Xstream 需要的jar包 xpp3_min-1.1.4c.jar xstream-1.3.1.jar 作用: 将xml字符串转换为java对象,或者将java对象转换为xml字符串 核心类:XStream xs = new XStream(); 准备工作,先创建两个java类:City和Province @XStreamAlias("city") public class City { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } @XStreamAlias("province") public class Province { @XStreamAsAttribute() private String name; @XStreamImplicit(itemFieldName = "city") private List citys; public List getCitys() { return citys; } public void setCitys(List citys) { this.citys = citys; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 第一:将java类转换为xml字符串 XStream xs = new XStream(); String xml = xs.toXML(JavaBean); 打印的字符串会将类的包名作为xml的标签,以及里面的字段都会变成标签。 例如将City类变为xml字符串:武汉将Province变成xml字符串湖北武汉所以为了能将打印的字符串变为我们所想要的格式,可以使用Xstream提供的注解进行格式化输出 提供便捷注解 @XStreamAlias(别名) 对类和变量设置别名 @XStreamAsAttribute 设置变量生成属性 @XStreamOmitField 设置变量 不生成到XML @XStreamImplicit(itemFieldName = “hobbies”) 设置集合类型变量 别名 使注解生效 xStream.autodetectAnnotations(true); 第二:将xml字符串变为java对象 Object xs.fromXML(InputStream input); //将一个下买了指定的流变为java对象 Object xs.fromXML(String xml) //将xml字符串变为java对象 Object xs.fromXML(InputStream input,Object root) ? Object xs.fromXML(String xml,Object root) ? 注意:转换的xml文档必须与Java对象 的格式对应 例如:将下面xml字符串转换为Java对象武汉则进行转换时候: XStream xs = new XStream(); Object o = xs.fromXML(in); 若对应的java格式一定是: 包名为:com.domain 类名为:City 里面有一个成员属性:name 提供setter/getter方法 若不是则可以使用别名: a.为类设置别名 xs.alias("city", City.class); b.为属性添加别名 xstream.useAttributeFor(Blog.class,"author"); 能不能通过注解将 xml转换为制定的java对象 ? 能,手动用方法添加别名