@XStreamAlias理解和使用

    xiaoxiao2022-06-26  117

     

    @XStreamAlias

    XStream是个很强大的工具,能将java对象和xml之间相互转化。xstream不在意java类中成员变量是私有还是公有,也不在乎是否有默认构造函数。它调用方式也非常简单:从xml对象转化为java对象,使用fromXML()方法;从java对象序列化为xml,toXML()即可,很方便。xstream也支持注解方式,这些都是为了简化输出而设计。

    例子:

    1.创建了一个实体类

    package bean; import com.thoughtworks.xstream.annotations.XStreamAlias; /** * @author 作者 E-mail: * @version 创建时间:2018年7月17日 下午5:00:38 * 类说明 */ @XStreamAlias("User") public class User { @XStreamAlias("name") private String name; @XStreamAlias("age") private String age; @XStreamAlias("SEX") private String sex; public User(String name, String age, String sex) { super(); this.name = name; this.age = age; this.sex = sex; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]"; } }

    2.创建一个工具类XstreamUtil 

    package util; /** * @author 作者 E-mail: * @version 创建时间:2018年7月17日 下午5:04:49 * 类说明 */ import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; public class XstreamUtil { /** * 将xml转换为bean * @param <T> 泛型 * @param xml 要转换为bean的xml * @param cls bean对应的Class * @return xml转换为bean */ public static <T> T xmlToObject(String xml, Class<T> cls){ XStream xstream = new XStream(new DomDriver()); //xstream使用注解转换 xstream.processAnnotations(cls); return (T) xstream.fromXML(xml); } }

    3.测试

    public class Test { public static void main(String[] args) { //xml转对象 String xml="<User>\n" +" <name>peter</name> \n" +" <age>13</age> \n" +" <SEX>男</SEX> \n" +" </User>"; User user = XstreamUtil.xmlToObject(xml, User.class); System.out.println(user); //对象转xml User user2 = new User("java","10","女"); XStream xstream = new XStream(); xstream.autodetectAnnotations(true);//自动检测模式,默认 String xml2 = xstream.toXML(user2); System.out.println(xml2); } }

     输出结果

    ------------xml转成对象----------- User [name=peter, age=13, sex=男] --------------对象转成xml----------- <User> <name>java</name> <age>10</age> <SEX>女</SEX> </User>

     


    最新回复(0)