使用XStream实现Java对象与XML之间的快速互转

来源:互联网 发布:白金数据电影网盘 编辑:程序博客网 时间:2024/05/18 00:32

需求:如何实现Java对象与XML之间的快速互转?
要实现这个需求,解决方法太多了,今天为大家展示的是XStream,可能很多朋友已经知道这个工具。
下面来看看XStream如何使用。
第一步导包:这个是使用Maven的方式引入包,很方便,不用经常去找jar包和考虑这个jar包有哪些依赖,所以也推荐大家在开发的时候尽可能的使用Maven。

    <dependency>      <groupId>com.thoughtworks.xstream</groupId>      <artifactId>xstream</artifactId>      <version>1.4.9</version>    </dependency>

第二步创建源对象(就是需要被转换成XML的对象),为了展示可以生产多级的结构,我这里新建两个实体类。

public class Person {    private String  name;    private String  address;    private int     age;    private Developer developer;    public Person() {    }    public Person(String name, String address, int age) {        this.name = name;        this.address = address;        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public Developer getDeveloper() {        return developer;    }    public void setDeveloper(Developer developer) {        this.developer = developer;    }    @Override    public String toString() {        return "Person{" +                "name='" + name + '\'' +                ", address='" + address + '\'' +                ", age=" + age +                ", developer=" + developer +                '}';    }}public class Developer extends Person{    private int score;    private int rank;    public Developer() {    }    public Developer(int score, int rank) {        this.score = score;        this.rank = rank;    }    public int getScore() {        return score;    }    public void setScore(int score) {        this.score = score;    }    public int getRank() {        return rank;    }    public void setRank(int rank) {        this.rank = rank;    }    @Override    public String toString() {        return "Developer{" +                "score=" + score +                ", rank=" + rank +                '}';    }}

第三步实现Java对象与XML的互转:

    /**     * 功能描述:Java对象转换成XML字符串     * @param object 被转换成xml的源对象     * @return     */    public static String objectToXml(Object object){        XStream xStream = new XStream();        xStream.alias("person",Object.class);        return xStream.toXML(object);    }    /**     *  功能描述:XML字符串转换成Java对象     * @param xml   被解析的xml字符串     * @param object    解析的目标对象     * @return     */    public static Object xmlToObject(String xml,Object object){        XStream xStream = new XStream();        xStream.alias("object",Object.class);        return xStream.fromXML(xml);    }

第四步测试:

    public static void main(String[] args) {        Person person = new Person("就是爱体验","广东深圳",24);        Developer developer = new Developer(100,0);        person.setDeveloper(developer);        String xml = objectToXml(person);        System.out.println("objectToXml:"+xml);        System.out.println("===============================");        Person person1 = new Person();        Person personobject  = (Person) xmlToObject(xml,person1);        System.out.println("xmlToObject:"+personobject);    }

测试结果:
这里写图片描述
当然,由于时间有限,这里只是一些简单的使用的讲解,如果想了解更多的使用方式,可以去官网更深一步的学习。

0 0