xml和对象之间互转

举报
Nick Qiu 发表于 2020/10/23 12:38:46 2020/10/23
【摘要】 ## 前言本文介绍利用java转换xml和java对象本文测试使用maven项目,项目中需要加入如下依赖:``` <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4...

## 前言


本文介绍利用java转换xml和java对象


本文测试使用maven项目,项目中需要加入如下依赖:

```

      <dependency>

            <groupId>com.thoughtworks.xstream</groupId>

            <artifactId>xstream</artifactId>

            <version>1.4.10</version>

        </dependency>

        <dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

            <version>1.16.20</version>

        </dependency>

```


## 对象代码


```

@Data

public class Person {

    private String firstname;

    private String lastname;


    public Person(String firstname, String lastname) {

        this.firstname = firstname;

        this.lastname = lastname;

    }


    private PhoneNumber phone;

    private PhoneNumber 邮件;

}

```


```

@Data

public class PhoneNumber {

    private int code;

    private String number;


    public PhoneNumber(int code, String number) {

        this.code = code;

        this.number = number;

    }

}

```


## 转换代码


```

public class XmlUtil {

    public  String obj2String(Object obj){

        XStream xstream = new XStream();

        String xml = xstream.toXML(obj);

        return  xml;

    }


    public  Object string2Obj(String str){

        XStream xstream = new XStream();

        return xstream.fromXML(str);

    }



    public static void main(String[] args) {

        Person joe = new Person("Joe", "Walnes");

        joe.setPhone(new PhoneNumber(123, "1234-456"));

        joe.set邮件(new PhoneNumber(123, "9999-999"));


        XmlUtil xmlUtil = new XmlUtil();

        //对象转换成为xml

        String xml = xmlUtil.obj2String(joe);

        System.out.println(xml);

        //xml转换成为对象

        Person newJoe = (Person)xmlUtil.string2Obj(xml);

        System.out.println("new Joe:"+newJoe.getFirstname()+" "+newJoe.getLastname());


    }

}

```


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200