XStream xml与对象的相互转化

 jar包的依赖:
  * 核心JAR包:xstream-1.4.7.jar
  * 必须依赖包:xpp3_min-1.1.4c
 1.将对象转化为xml
    1.1编写类:
    class Person implements Serializable {
        private String name ;
        private Integer age;
        private String gender;
        private Address add;
        private List<Address> address;
        //此处省略get set方法
        
    }
 
    class Address implements Serializable {
        private String province;
        private String city;
        private String area;
        //此处省略get set方法        
        
    }
    1.2 测试代码
        1.2.1构造数据 
            Person p = new Person();
            p.setAge(12);
            p.setGender("男");
            p.setName("张三");
    
            List<Address> list = new ArrayList<Address>();
            Address address1 = new Address();
            address1.setArea("犀浦镇");
            address1.setCity("成都市");
            address1.setProvince("四川省");
            Address address2 = new Address();
            address2.setArea("红光镇");
            address2.setCity("成都市");
            address2.setProvince("四川省");
            list.add(address1);
            list.add(address2);
            p.setAddress(list);
        1.2.2使用XStream 将对象转化为xml
            XStream xStream = new XStream();
            xStream.alias("person", Person.class);
            xStream.alias("address", Address.class);
            String xml = xStream.toXML(p);//将对象转化为xml
            System.out.println(xml);
    1.3 结果输出
        <person>
          <name>张三</name>
          <age>12</age>
          <gender>男</gender>
          <address>
            <address>
              <province>四川省</province>
              <city>成都市</city>
              <area>犀浦镇</area>
            </address>
            <address>
              <province>四川省</province>
              <city>成都市</city>
              <area>红光镇</area>
            </address>
          </address>
        </person>
        其中多出了<address> 可以使用xStream.addImplicitCollection(Person.class,"address")方法去除
        打印结果为:
        <person>
          <name>张三</name>
          <age>12</age>
          <gender>男</gender>
          <address>
            <province>四川省</province>
            <city>成都市</city>
            <area>犀浦镇</area>
          </address>
          <address>
            <province>四川省</province>
            <city>成都市</city>
            <area>红光镇</area>
          </address>
        </person>
 2.将xml转化为对象
    1.xml字符串:
        <person>
          <name>张三</name>
          <age>12</age>
          <gender>男</gender>
          <address>
            <province>四川省</province>
            <city>成都市</city>
            <area>犀浦镇</area>
          </address>
          <address>
            <province>四川省</province>
            <city>成都市</city>
            <area>红光镇</area>
          </address>
        </person>
    2.使用XStream将xml转化为对象
        XStream xStream = new XStream();
        xStream.alias("person", Person.class);
        xStream.alias("address", Address.class);
        xStream.addImplicitCollection(Person.class,"address");
        Person person = (Person) xStream.fromXML(xml);//将xml转化为对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值