【XStream】xml和java实体的相互转化

摘要:
1.pom.xml˂!

1.pom.xml

<!-- xstream xml和Java对象转化 -->
        <dependency>
            <groupId>xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>xpp3</groupId>
            <artifactId>xpp3</artifactId>
            <version>1.1.3.4.O</version>
        </dependency>

2.实体TestEntity.java

【XStream】xml和java实体的相互转化第1张【XStream】xml和java实体的相互转化第2张
package com.sxd.test.controller;

import java.util.List;


/**
 * 测试类 TestEntity---要转化为xml的类
 * @author SXD
 *
 */
public class TestEntity {

    
    private Integer money;
    private String firstStr;
    private boolean flag;
    
    private List<Team> teamList;

    public Integer getMoney() {
        return money;
    }

    public void setMoney(Integer money) {
        this.money = money;
    }

    public String getFirstStr() {
        return firstStr;
    }

    public void setFirstStr(String firstStr) {
        this.firstStr = firstStr;
    }

    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public List<Team> getTeamList() {
        return teamList;
    }

    public void setTeamList(List<Team> teamList) {
        this.teamList = teamList;
    }

    @Override
    public String toString() {
        return "TestEntity [money=" + money + ", firstStr=" + firstStr
                + ", flag=" + flag + ", teamList=" + teamList + "]";
    }
    
    
    
    
}
View Code

3.实体Team.java

【XStream】xml和java实体的相互转化第1张【XStream】xml和java实体的相互转化第4张
package com.sxd.test.controller;

/**
 * 测试类 -- Team实体
 * @author SXD
 *
 */
public class Team {

    
    private String name;
    private int num;
    private String describe;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public String getDescribe() {
        return describe;
    }
    public void setDescribe(String describe) {
        this.describe = describe;
    }
    
    @Override
    public String toString() {
        return "Team [name=" + name + ", num=" + num + ", describe=" + describe
                + "]";
    }
    
    
    
}
View Code

4.Test.java测试类

【XStream】xml和java实体的相互转化第1张【XStream】xml和java实体的相互转化第6张
package com.sxd.test.controller;

import java.util.ArrayList;
import java.util.List;

import com.thoughtworks.xstream.XStream;


public class Test {

    
    @org.junit.Test
    public void testName() throws Exception {
        TestEntity obj = getEntity();
        XStream stream = new XStream();
        String xml = stream.toXML(obj);
        System.out.println(xml);
        
        TestEntity testEntity = (TestEntity) stream.fromXML(xml);
        System.out.println("");
        System.out.println(testEntity.toString());
        
        
    }
    
    
    public TestEntity getEntity(){
        TestEntity entity = new TestEntity();
        entity.setMoney(30000);
        entity.setFlag(true);
        entity.setFirstStr("艾欧尼亚");
        
        List<Team> list = new ArrayList<Team>();
        Team team1 = new Team();
        team1.setName("英雄1");
        team1.setNum(2);
        team1.setDescribe("射手英雄,远程攻击型英雄");
        
        list.add(team1);
        
        Team team2 = new Team();
        team2.setName("英雄2");
        team2.setNum(3);
        team2.setDescribe("坦克英雄,肉盾抗击打型英雄");
        
        list.add(team2);
        
        entity.setTeamList(list);
        
        return entity;
        
        
        
    }
    
}
View Code

测试结果:

<com.sxd.test.controller.TestEntity>
  <money>30000</money>
  <firstStr>艾欧尼亚</firstStr>
  <flag>true</flag>
  <teamList>
    <com.sxd.test.controller.Team>
      <name>英雄1</name>
      <num>2</num>
      <describe>射手英雄,远程攻击型英雄</describe>
    </com.sxd.test.controller.Team>
    <com.sxd.test.controller.Team>
      <name>英雄2</name>
      <num>3</num>
      <describe>坦克英雄,肉盾抗击打型英雄</describe>
    </com.sxd.test.controller.Team>
  </teamList>
</com.sxd.test.controller.TestEntity>

TestEntity [money=30000, firstStr=艾欧尼亚, flag=true, teamList=[Team [name=英雄1, num=2, describe=射手英雄,远程攻击型英雄], Team [name=英雄2, num=3, describe=坦克英雄,肉盾抗击打型英雄]]]

免责声明:文章转载自《【XStream】xml和java实体的相互转化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vc6.0 调用ocx控件canvas 钟表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【SpringSecurity】初识与集成

个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道 如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充 前言 之前介绍过Shiro,作为SpringSecurity的精简版,已经具备了大部分常用功能,且更加便于使用,因而一定程度上成为了SpringSecurity的替代品。 相比之下,SpringSecurity功能更加强大完善,通过调整和...

GridView嵌套实现

  GridView嵌套实现 效果图: 技术实现: 前台: <%@PageLanguage="C#"AutoEventWireup="true" CodeFile="Default.aspx.cs"Inherits="_Default"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transit...

干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结

我(梦在旅途,http://zuowj.cnblogs.com; http://www.zuowenjun.cn)最近发表的一篇文章《.NET CORE与Spring Boot编写控制台程序应有的优雅姿势》看到都上48小时阅读排行榜(当然之前发表的文章也有哦!),说明关注.NET CORE及Spring Boot的人很多,也是目前的主流方向,于是我便决定系...

springboot 学习之路 27(实现ip白名单功能)

背景:   最近项目中遇到关于对部分请求设置ip白名单的功能需求,在这简单梳理一下我的开发步骤与思路 实践步骤:   思路: 关于实现ip白名单的过滤我大致会想到三种实现方式: 对相关需要过滤的控制类进行单独设置  -------------- 代码臃肿,不利于维护 利用相关拦截器进行统一实现                --------------相...

使用EasyExcel导出图片及异常处理

1、使用String类型导出   定义自己的Converter,不使用默认的StringImageConverter 如果图片路径为空或者图片路径是错误的,返回相应的内容 import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream;...

Android获取系统时间方法的总结

Android获取系统时间方法的方法有很多种,常用的有Calendar、Date、currentTimeMills等方法。 (1)Calendar Calendar获取系统时间首先要用Calendar.getInstance()函数获取一个实例,再为该实例设定时区(中国的时区为GMT+8:00),最后使用Calendar.get()函数获取时间的具体信息,...