一、XStream简介
1. XStream的功能:Java对象与XML之间进行互相转化。
2. XStream的特点:灵活易用、高性能、整洁的XML、转换策略定制、错误诊断等。
3. XStream使用场景:转换;持久化对象;配置;单元测试。
4. 依赖的包: xstream-[version].jar、xpp3-[version].jar、xmlpull-[version].jar
5. MAVEN中pom.xml文件配置
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.9</version>
</dependency>
二、XStream的使用
1. 创建XStream实例
XStream xstream = new XStream();
XStream xstream = new XStream(new DomDriver());
XStream xstream = new XStream(new StaxDriver());
2. 常用方法
xstream.toXML():将对象转换成XML
xstream.fromXML():将XML转换成对象
xstream.alias():为指定类创建别名
xstream.useAttributeFor():设置属性
xstream.aliasField():为字段设置别名
xstream.aliasAttribute():为属性设置别名
xstream.addImplicitCollection():集合节点隐藏,只显示子信息节点
xstream.processAnnotations():处理Annotations信息
xstream.autodetectAnnotations():自动侦查注解
3. 常用的注解
@XStreamAlias("message"):为类和字段设置别名
@XStreamImplicit(itemFieldName="part"): 隐式集合注解
@XStreamAsAttribute:转换成属性
@XStreamOmitField:不跟XML对应,需要省略的字段
@XStreamConverter():注入转换器
三、代码示例
1. 假设有如下XML内容要转换成JAVA对象
<?xml version="1.0" encoding="UTF-8"?> <table name="ts_user" comment="用户信息"> <column name="id" type="char" length="10" comment="ID"></column> <column name="name" type="varchar" length="50" comment="用户名"></column> <column name="password" type="varchar" length="100" comment="密码"></column> <column name="age" type="int" length="11" comment="年龄"></column> <column name="createDate" type="date" comment="创建日期"></column> </table>
2. 创建对应的model类
import java.util.List; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import com.thoughtworks.xstream.annotations.XStreamImplicit; @XStreamAlias("table") public class Table { @XStreamAsAttribute private String name; @XStreamAsAttribute private String comment; @XStreamImplicit(itemFieldName="column") private List<Column> columnList; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public List<Column> getColumnList() { return columnList; } public void setColumnList(List<Column> columnList) { this.columnList = columnList; } } import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; @XStreamAlias("column") public class Column { @XStreamAsAttribute private String name; @XStreamAsAttribute private String type; @XStreamAsAttribute private Integer length; @XStreamAsAttribute private String comment; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } public Integer getLength() { return length; } public void setLength(Integer length) { this.length = length; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } }
3. 转换代码
XStream xstream = new XStream(); xstream.processAnnotations(new Class[]{Table.class, Column.class}); Table table = (Table)xstream.fromXML(xmlContent); // xmlContent为xml内容
相关推荐
XStream 的核心概念是通过自动映射 Java 类和 XML 节点来实现对象和 XML 的转换。它通过反射和自定义转换器机制来完成这一过程。默认情况下,XStream 可以处理大多数标准的 Java 类型,包括基本类型、集合、Map 等。...
XStream是一个轻量级、高性能的库,能够将Java对象序列化为XML,同时也能将XML反序列化回Java对象,实现XML和Java对象的互相转换。 首先,我们需要引入XStream库。在给定的描述中提到了两个依赖文件:xstream-1.3.1...
它可以将Java对象转换为XML文档,也可以将XML文档转换为Java对象。 pom引用 <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.20 实体类和测试类详见博客 ...
这篇博客“xstream 让javabean和xml互相转换”深入探讨了如何利用XStream库实现这一功能。 XStream的核心思想是通过反射机制,将Java对象的字段映射到XML的元素和属性,以及反向操作将XML解析回Java对象。它的优势...
本文将深入探讨如何实现Java对象到XML以及XML到Java对象的转换。 首先,Java对象到XML的转换通常涉及到Java对象的序列化。在Java中,可以使用JAXB(Java Architecture for XML Binding)框架来实现这一过程。JAXB...
总的来说,xStream是Java开发中处理XML和JSON的强大工具,它提供了简单易用的API来实现对象与这两种数据格式之间的转换。通过理解和掌握xStream的使用,开发者可以更高效地处理数据序列化和反序列化任务。
标题中的“使用XStream是实现XML与Java对象的转换(5)--Object Stream”指的是一个关于XStream库在Java中如何将XML数据与Java对象进行互相转换的教程系列的第五部分,重点可能是关于“Object Stream”的内容。XStream...
XStream是一个强大的库,专门用于XML与Java对象之间的互相转换。这篇博文将深入探讨如何利用XStream的转换器功能来优化这一过程。 XStream的核心原理是通过反射机制自动将Java对象映射到XML结构,并反之亦然。然而...
XStream库则是Java世界中一个强大的工具,它能够方便地实现XML和JSON与Java对象之间的互相转换。这篇博客文章,标题为“xStream学习xml,JASON,JAVA对象转换”,显然会探讨如何利用XStream来处理这两种数据格式。 ...
XStream是一个强大的Java库,它允许开发者方便地将Java对象序列化为XML,同时也能将XML数据反序列化回对应的Java对象。这个过程对于数据存储、网络传输或者XML配置文件的处理非常有用。在处理多个同名子节点以及节点...
- 使用Apache的JAXB(Java Architecture for XML Binding):JAXB允许将XML绑定到Java对象,然后再将这些对象转换为JSON。 2. JSON到XML转换: - Jackson库同样提供了反向转换功能,使用`writeValueAsString`方法...
在Java开发中,将XML与对象互相转换是常见的需求,这时就需要用到像XStream这样的库。 XStream是一个开源的Java库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。它的主要优点在于其易用性和...
3. 第三方库:除了标准的Java库,还有许多第三方库如Apache's Digester、Castor和XStream等,它们提供了更简洁的API来简化XML与JavaBean之间的转换。 4. XMLBeans库:压缩包中的"xmlbean"可能指的是Apache的...
这篇内容将主要介绍如何利用xUtils进行断点下载、XStream库实现XML与JavaBean之间的互相转换,以及如何启动本地音乐播放器。这些技术都是Android应用开发中常见的需求,对提升用户体验和应用功能具有积极的作用。 ...
xml与java互相转换,比较简单的一个工具类,对xml的支持比较完美
xml与java互相转换,比较简单的一个工具类,对xml的支持比较完美
4. **Gson**:Gson是Google提供的一个Java库,用于在Java对象和JSON数据之间进行互相转换。在这个例子中,Gson可能被用到了后台数据与前端Ajax交互的过程中,将Java对象转换成JSON字符串,通过Ajax发送到客户端,...
- JaxbMapper: XML与Object之间的互相转换。 - JsonMapper: JSON与Object之间的互相转换。 - Cryptos、Digests: 密钥工具类(SHA1、MD5)。 - Collections3: 集合对象工具类。 - Encodes: 各种编码转换工具类。 ...