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

简介: 1.pom.xml xstream xstream 1.1.3 xpp3 xpp3 1.

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

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

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测试类

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=坦克英雄,肉盾抗击打型英雄]]]

 

相关文章
|
6月前
|
XML 数据采集 存储
使用Java和XPath在XML文档中精准定位数据
在数据驱动的时代,从复杂结构中精确提取信息至关重要。XML被广泛用于数据存储与传输,而XPath则能高效地在这些文档中导航和提取数据。本文深入探讨如何使用Java和XPath精准定位XML文档中的数据,并通过小红书的实际案例进行分析。首先介绍了XML及其挑战,接着阐述了XPath的优势。然后,提出从大型XML文档中自动提取特定产品信息的需求,并通过代理IP技术、设置Cookie和User-Agent以及多线程技术来解决实际网络环境下的数据抓取问题。最后,提供了一个Java示例代码,演示如何集成这些技术以高效地从XML源中抓取数据。
238 7
使用Java和XPath在XML文档中精准定位数据
|
1月前
|
Java
java代码优化:判断内聚到实体对象中和构造上下文对象传递参数
通过两个常见的java后端实例场景探讨代码优化,代码不是优化出来的,而是设计出来的,我们永远不可能有专门的时间去做代码优化,优化和设计在平时
32 15
|
6月前
|
XML JavaScript Java
【JAVA XML 探秘】DOM、SAX、StAX:揭秘 Java 中 XML 解析技术的终极指南!
【8月更文挑战第25天】本文详细探讨了Java中三种主流的XML解析技术:DOM、SAX与StAX。DOM将XML文档转换为树状结构,便于全方位访问和修改;SAX采取事件驱动模式,适用于大型文件的顺序处理;StAX则兼具DOM和SAX的优点,支持流式处理和随机访问。文中提供了每种技术的示例代码,帮助读者理解如何在实际项目中应用这些解析方法。
276 1
|
8月前
|
XML Java 数据格式
必知的技术知识:java基础73dom4j修改xml里面的内容(网页知识)
必知的技术知识:java基础73dom4j修改xml里面的内容(网页知识)
54 1
|
4月前
|
存储 Java API
如何使用 Java 记录简化 Spring Data 中的数据实体
如何使用 Java 记录简化 Spring Data 中的数据实体
57 9
|
4月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
148 4
|
4月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
50 3
|
5月前
|
Java 数据库连接 mybatis
MapStruct-Java实体转换利器
本文介绍了MapStruct这一Java实体转换工具,通过定义mapper接口和使用注解,自动生成实现类以简化不同Java对象之间的转换过程,并提供了一个简单的使用示例,包括定义DTO、Entity类和映射接口,以及在Service层中的使用方式。
MapStruct-Java实体转换利器
|
4月前
|
XML 安全 网络协议
Xxe外部实体注入(XML External Entity Injection)
Xxe外部实体注入(XML External Entity Injection)
|
6月前
|
XML 存储 JavaScript
在 Java 中如何将 ArrayList 转换为 XML
【8月更文挑战第23天】
96 3