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

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

 

时间: 2024-10-29 13:45:31

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

dalvik-在做xml与java实体类的转换时,导入的jar包都会让eclipse报错

问题描述 在做xml与java实体类的转换时,导入的jar包都会让eclipse报错 我开始用XStream,后来又根据网上的代码导入javax.xml.bind包来进行解析,但是这两种都会报错:Conversion to Dalvik format failed with error 1,我百了一下,也不是很明白,还请大家解答,先谢谢各位了.. 解决方案 可以试下这个方案http://dev.wo.com.cn/docportal/doc_queryMdocDetail.action?mdoc

帮忙看看下面的实体类是怎么生成的?XML生成JAVA 实体类

问题描述 ////ThisfilewasgeneratedbytheJavaTMArchitectureforXMLBinding(JAXB)ReferenceImplementation,v2.2.4-2//See<ahref="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>//Anymodificationstothisfilewillbelostuponrecompilation

XML 和 Java 技术: 数据绑定的多种用法

xml|数据 除将 XML 用作一种简单数据格式之外,数据绑定是 XML 最流行的用法之一.即使刚刚入门的程序员也能在一种原生编程语言中使用 XML,并且在大多数情况下完全不需要任何的 XML 专门知识.本文并不是介绍解决方案,取而代之,Brett 介绍了一些讨论主题,鼓励您思考如何使用 XML 和数据绑定.欢迎在 XML 和 Java 技术讨论论坛上与别人一起分享您的想法. XML 用于业务而非技术 随着 XML 的日趋盛行,人们也越来越注重可用性.换句话说,程序员和管理者并不希望把 XML

OpenXava v4.2发布 XML与Java开发的J2EE商业应用

OpenXava是一个让使用XML与Java来开发J2EEhttp://www.aliyun.com/zixun/aggregation/6441.html">商业应用程序变得简单的框架.OpenXava不使用常见的MVC架构,它是一个JPA应用程序引擎,你能够通过JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期实体对象持久化到数据库中去. OpenXava 是一个用来快速简洁开发JavaEE/J2EE应用的框架.OpenXava的根本哲理是用Java annotations

XML和java

问题描述 求问XML在java web应用里面的解析效率以及运行过程中的效率,我一直觉得XML效率比较低下(个人鄙见),想在java中彻底抛弃XML,希望各位大牛能够解答 问题补充:<div class="quote_title">梦中有你 写道</div><div class="quote_div">你想彻底抛弃XML 那在JavaWeb中还用SSH吗?他们这些框架都是靠配置文件来运作,实质就是XML文件 相关配置文件XML还是

XML到Java代码的数据绑定之对象

xml|对象|数据 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考

Java 中的 XML:Java 文档模型的用法

xml 在本系列的第一篇文章中,我研究了一些用 Java 编写的主要的 XML 文档模型的性能.但是,在开始选择这种类型的技术时,性能只是问题的一部分.使用方便至少是同样重要的,并且它已是一个主要理由,来支持使用 Java 特定的模型,而不是与语言无关的 DOM . 为切实了解哪个模型真正的作用,您需要知道它们在可用性程度上是如何排名的.本文中,我将尝试进行这个工作,从样本代码开始,来演示如何在每个模型中编码公共类型的操作.并对结果进行总结来结束本文,而且提出了促使一种表示比另一种更容易使用的一

XML 和 Java:一个强大的组合

xml XML当它在1996年11月首次由WWW小组( W3C)提出时就是一个能够被很好接受的规范.现在,它与Java从本质上的结合--即把Java程序中的与XML相关的代码部分和对Java语义(动作)编码的部分转换成XML的标记,承诺能够向企业或更高层提供更简单和更具创造力的应用计算.Larry Cable 和 Mark Reinhold 是Sun公司的两名老资格的工程师,他们在最近召开的JavaOne开发者大会的"Java平台上的XML"技术会议部分发言,根据他们的发言,关注这种技

从XML到Java代码的数据绑定之对象【来自JAVA家】

xml|对象|数据 在这个由四部分组成的系列文章的第一部分,我们将弄清什么是数据绑定,与在 Java 应用程序中处理 XML 数据的其它方法相比它有什么优势,以及如何开始使用它.这一部分将考查为什么使用数据绑定,以及如何为各种约束建立模型,使 XML 文档能转换成 Java 对象.同时还涵盖用于生成数据绑定类的输入和输出. 您希望在您的 Java 应用程序中使用 XML 吗?那么好,同成千上万的其他人一起上这条船吧.当您深入了解 XML 以后,也许您会发现 DOM 和 SAX API(请参阅参考