XStream是thoughtworks公司发布的一个简单的Java类库,用于将JavaBean序列化为XML,并且能够将XML文件反向转换为JavaBean.
实例:
user.java
- import java.io.Serializable;
- public class User implements Serializable{
- private String id;
- private String name;
- private String age;
- public User(){
- }
- public User(String id,String name,String age){
- this.id=id;
- this.name=name;
- this.age=age;
- }
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getAge() {
- return age;
- }
- public void setAge(String age) {
- this.age = age;
- }
- }
BaseBean.java
- import java.util.ArrayList;
- import java.util.List;
- public class BaseBean{
- private List<User> userList;
- public BaseBean(){
- userList = new ArrayList<User>();
- }
- public List<User> getUserList() {
- return userList;
- }
- public void setUserList(List<User> userList) {
- this.userList = userList;
- }
- public void addUser(User user) {
- userList.add(user);
- }
- }
xstream代码
- public class XStreamTest {
- public static void main(String[] args) {
- //javabean 转 xml
- List<User> users = new ArrayList<User>();
- users.add(new User("123", "爱边程", "23"));
- users.add(new User("456", "刘大拿", "24"));
- BaseBean base = new BaseBean();
- base.setUserList(users);
- XStream xs = new XStream();
- xs.alias("root", BaseBean.class);
- xs.alias("user", User.class);
- xs.aliasField("list", BaseBean.class, "userList");
- String xml=xs.toXML(base);
- System.out.println("javabean转成xml为:\n"+xml);
- //xml转javabean
- XStream xs1 = new XStream(new DomDriver());
- xs1.alias("root", BaseBean.class);//注意此处要把原要转换的bean类定义别名为根节点的名字,如上面的xml的根节点为<root>
- xs1.alias("user", User.class); //此处与上面相同
- xs1.aliasField("list", BaseBean.class, "userList");
- base=(BaseBean)xs1.fromXML(xml);
- users=base.getUserList();
- System.out.println("xml转成javabean为:");
- for(User u:users){
- System.out.println("id="+u.getId()+",name="+u.getName()+",age="+u.getAge());
- }
- }
- }