XStream xml与javabean之间的互转

时间:2021-12-18 17:46:39

XStream是thoughtworks公司发布的一个简单的Java类库,用于将JavaBean序列化为XML,并且能够将XML文件反向转换为JavaBean.

实例:

user.java

[java] view plain copy
  1. import java.io.Serializable;    
  2.      public class User implements Serializable{    
  3.              
  4.          private String id;    
  5.          private String name;    
  6.          private String age;    
  7.          public User(){    
  8.                  
  9.          }    
  10.          public User(String id,String name,String age){    
  11.              this.id=id;    
  12.              this.name=name;    
  13.              this.age=age;    
  14.          }    
  15.          public String getId() {    
  16.              return id;    
  17.          }    
  18.          public void setId(String id) {    
  19.             this.id = id;    
  20.          }    
  21.         public String getName() {    
  22.              return name;    
  23.          }    
  24.          public void setName(String name) {    
  25.              this.name = name;    
  26.          }    
  27.          public String getAge() {    
  28.              return age;    
  29.          }    
  30.          public void setAge(String age) {    
  31.              this.age = age;    
  32.          }    
  33.             
  34.              
  35.      }    


BaseBean.java

[java] view plain copy
  1. import java.util.ArrayList;    
  2.  import java.util.List;    
  3.      
  4.  public class BaseBean{    
  5.      private List<User> userList;    
  6.      public BaseBean(){    
  7.          userList = new ArrayList<User>();    
  8.      }    
  9.      public List<User> getUserList() {    
  10.          return userList;    
  11.      }    
  12.      
  13.      public void setUserList(List<User> userList) {    
  14.          this.userList = userList;    
  15.      }    
  16.       public void addUser(User user) {       
  17.           userList.add(user);       
  18.        }    
  19.  }   


xstream代码

[java] view plain copy
  1. public class XStreamTest {    
  2.          public static void main(String[] args) {    
  3.              //javabean 转 xml     
  4.              List<User> users = new ArrayList<User>();    
  5.              users.add(new User("123""爱边程""23"));    
  6.              users.add(new User("456""刘大拿""24"));    
  7.              BaseBean base = new BaseBean();    
  8.              base.setUserList(users);    
  9.              XStream xs = new XStream();    
  10.              xs.alias("root", BaseBean.class);    
  11.              xs.alias("user", User.class);    
  12.              xs.aliasField("list", BaseBean.class"userList");    
  13.              String xml=xs.toXML(base);    
  14.              System.out.println("javabean转成xml为:\n"+xml);    
  15.                  
  16.              //xml转javabean     
  17.              XStream xs1 = new XStream(new DomDriver());    
  18.              xs1.alias("root", BaseBean.class);//注意此处要把原要转换的bean类定义别名为根节点的名字,如上面的xml的根节点为<root>    
  19.              xs1.alias("user", User.class);  //此处与上面相同  
  20.              xs1.aliasField("list", BaseBean.class"userList");    
  21.              base=(BaseBean)xs1.fromXML(xml);    
  22.              users=base.getUserList();    
  23.              System.out.println("xml转成javabean为:");    
  24.              for(User u:users){    
  25.                  System.out.println("id="+u.getId()+",name="+u.getName()+",age="+u.getAge());    
  26.              }    
  27.          }    
  28.          
  29.      }