JavaBean与xml文件的互转——xstream

目录

 

一.所需jar包

二.JavaBean对象与xml互转之准备相关实体类

三.JavaBean对象转成xml

四.xml文件转JavaBean对象


一.所需jar包

  • 1.1.xstream.jar——互转的基础jar包
  • 1.2.xmlpull.jar——JavaBean转成xml文件需要的jar包
  • 1.3.xpp3-1.1.4c.jar——xml转成JavaBean对象所需要的jar包

这些jar包晚上都可以找到,如果实在找不到,这里给大家一个传送门:xstream.jar包及其他所需依赖jar包下载传送门

二.JavaBean对象与xml互转之准备相关实体类

package bean;

import java.util.List;

/**
 * This is the Customer class
 *
 * @author: lvxiaobu
 * @createDate: 2018-09-18 14:45
 */
public class Customer {

    private String commodity;


    public String getCommodity() {
        return commodity;
    }

    public void setCommodity(String commodity) {
        this.commodity = commodity;
    }
}
package bean;

import java.util.List;

/**
 * This is the User class
 *
 * @author: lvxiaobu
 * @createDate: 2018-09-18 14:44
 */
public class User {

    private String name;
    private String age;
    private List<Customer> customer;

    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;
    }

    public List<Customer> getCustomer() {
        return customer;
    }

    public void setCustomer(List<Customer> customer) {
        this.customer = customer;
    }
}

三.JavaBean对象转成xml

    public static void main(String[] args) {
        User user = new User();
        Customer customer1 = new Customer();
        Customer customer2 = new Customer();
        customer1.setCommodity("手表");
        customer2.setCommodity("电脑");

        List<Customer> list = new ArrayList<Customer>();
        list.add(customer1);
        list.add(customer2);
        user.setName("吕小布");
        user.setAge("23");
        user.setCustomer(list);

        //创建xStream对象
        XStream xStream = new XStream();

        //给class起别名(建议先注释掉,看一下不起别名输出的xml格式)
        xStream.alias("User",User.class);
        xStream.alias("Customer",Customer.class);

        //调用toXML 将对象转成字符串
        String s = xStream.toXML(user);
        System.out.println(s);


        //将字符串写入文件
        //handIo(s);


    }

控制台输出显示:

<User>
  <name>吕小布</name>
  <age>23</age>
  <customer>
    <Customer>
      <commodity>手表</commodity>
    </Customer>
    <Customer>
      <commodity>电脑</commodity>
    </Customer>
  </customer>
</User>

四.xml文件转JavaBean对象

    public static void main(String[] args) {

        //模拟一个xml格式字符串
        String xml = "<user>\n" +
                "  <name>beyondLi</name>\n" +
                "  <age>23</age>\n" +
                "  <customer>\n" +
                "    <Customer>\n" +
                "      <commodity>商品1</commodity>\n" +
                "    </Customer>\n" +
                "    <Customer>\n" +
                "      <commodity>商品2</commodity>\n" +
                "    </Customer>\n" +
                "  </customer>\n" +
                "</user>";        

        XStream xstream = new XStream();

        //不设置会报错
        XStream.setupDefaultSecurity(xstream);
        xstream.allowTypes(new Class[]{User.class, Customer.class});

        //将别名与xml名字相对应
        xstream.alias("User", User.class);
        xstream.alias("Customer", Customer.class);


        User user2 = (User) xstream.fromXML(xml.toString());
        System.out.println(user2);


    }

控制台输出:

bean.User@4d3167f4

正常流程中,应该是给将JavaBean对象转成xml文件,或者是读取指定xml文件然后将其内容转成JavaBean对象。这个时候就需要添加IO流来操作文件了。

IO流的资源网络上一大堆,在这里我放一个我自己整理的IO流的案例<该IO流案例和此篇博客其实一个demo中的例子>,

传送门:IO流写出读取文件


如果有书写错误的地方,或者是有问题的地方请及时评论或者是私信我,以免误导个别萌新。
虽然我也是个萌新。
你好,我叫吕小布。

猜你喜欢

转载自blog.csdn.net/qq_36769100/article/details/82768723