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;
        //此处省略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
list = new ArrayList
();
            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 结果输出
        
          张三
          12
          
          

            

              四川省
              成都市
              犀浦镇
            

            

              四川省
              成都市
              红光镇
            

          

        

        其中多出了
可以使用xStream.addImplicitCollection(Person.class,"address")方法去除
        打印结果为:
        
          张三
          12
          
          

            四川省
            成都市
            犀浦镇
          

          

            四川省
            成都市
            红光镇
          

        

 2.将xml转化为对象
    1.xml字符串:
        
          张三
          12
          
          

            四川省
            成都市
            犀浦镇
          

          

            四川省
            成都市
            红光镇
          

        

    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转化为对象

你可能感兴趣的:(xml解析)