美文网首页
xtream的工具使用

xtream的工具使用

作者: 怪蜀黍1212 | 来源:发表于2017-04-23 00:02 被阅读0次

    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对象  ?

    能,手动用方法添加别名

       

    相关文章

      网友评论

          本文标题:xtream的工具使用

          本文链接:https://www.haomeiwen.com/subject/iosezttx.html