`
拓子轩
  • 浏览: 210642 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

xstream实现java对象和XML的互相转换

    博客分类:
  • java
阅读更多

一、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内容

 

 

1
0
分享到:
评论

相关推荐

    Xstream_java对象和xml的互相转换

    XStream 的核心概念是通过自动映射 Java 类和 XML 节点来实现对象和 XML 的转换。它通过反射和自定义转换器机制来完成这一过程。默认情况下,XStream 可以处理大多数标准的 Java 类型,包括基本类型、集合、Map 等。...

    好用的xStream XML和JAVA对象互相转换的简单示例

    XStream是一个轻量级、高性能的库,能够将Java对象序列化为XML,同时也能将XML反序列化回Java对象,实现XML和Java对象的互相转换。 首先,我们需要引入XStream库。在给定的描述中提到了两个依赖文件:xstream-1.3.1...

    xstream实现xml和java bean 互相转换

    它可以将Java对象转换为XML文档,也可以将XML文档转换为Java对象。 pom引用 &lt;groupId&gt;com.thoughtworks.xstream&lt;/groupId&gt; &lt;artifactId&gt;xstream &lt;version&gt;1.4.20 实体类和测试类详见博客 ...

    xstream 让javabean和xml互相转换

    这篇博客“xstream 让javabean和xml互相转换”深入探讨了如何利用XStream库实现这一功能。 XStream的核心思想是通过反射机制,将Java对象的字段映射到XML的元素和属性,以及反向操作将XML解析回Java对象。它的优势...

    java对象与xml的互相转换

    本文将深入探讨如何实现Java对象到XML以及XML到Java对象的转换。 首先,Java对象到XML的转换通常涉及到Java对象的序列化。在Java中,可以使用JAXB(Java Architecture for XML Binding)框架来实现这一过程。JAXB...

    xStream转换xml和json源码

    总的来说,xStream是Java开发中处理XML和JSON的强大工具,它提供了简单易用的API来实现对象与这两种数据格式之间的转换。通过理解和掌握xStream的使用,开发者可以更高效地处理数据序列化和反序列化任务。

    使用XStream是实现XML与Java对象的转换(4)--转换器

    XStream是一个强大的库,专门用于XML与Java对象之间的互相转换。这篇博文将深入探讨如何利用XStream的转换器功能来优化这一过程。 XStream的核心原理是通过反射机制自动将Java对象映射到XML结构,并反之亦然。然而...

    使用XStream是实现XML与Java对象的转换(5)--Object Stream

    标题中的“使用XStream是实现XML与Java对象的转换(5)--Object Stream”指的是一个关于XStream库在Java中如何将XML数据与Java对象进行互相转换的教程系列的第五部分,重点可能是关于“Object Stream”的内容。XStream...

    xStream学习xml,JASON,JAVA对象转换

    XStream库则是Java世界中一个强大的工具,它能够方便地实现XML和JSON与Java对象之间的互相转换。这篇博客文章,标题为“xStream学习xml,JASON,JAVA对象转换”,显然会探讨如何利用XStream来处理这两种数据格式。 ...

    XStream:Object与Xml字符串 互相转换

    XStream是一个强大的Java库,它允许开发者方便地将Java对象序列化为XML,同时也能将XML数据反序列化回对应的Java对象。这个过程对于数据存储、网络传输或者XML配置文件的处理非常有用。在处理多个同名子节点以及节点...

    XML、JAVA、JSON多种方式互相转换

    - 使用Apache的JAXB(Java Architecture for XML Binding):JAXB允许将XML绑定到Java对象,然后再将这些对象转换为JSON。 2. JSON到XML转换: - Jackson库同样提供了反向转换功能,使用`writeValueAsString`方法...

    xml操作之xstream

    在Java开发中,将XML与对象互相转换是常见的需求,这时就需要用到像XStream这样的库。 XStream是一个开源的Java库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。它的主要优点在于其易用性和...

    xml与javabean的相互转换

    3. 第三方库:除了标准的Java库,还有许多第三方库如Apache's Digester、Castor和XStream等,它们提供了更简洁的API来简化XML与JavaBean之间的转换。 4. XMLBeans库:压缩包中的"xmlbean"可能指的是Apache的...

    android xUtils断点下载+xml与javaBean互转+打开本地音乐播放器

    这篇内容将主要介绍如何利用xUtils进行断点下载、XStream库实现XML与JavaBean之间的互相转换,以及如何启动本地音乐播放器。这些技术都是Android应用开发中常见的需求,对提升用户体验和应用功能具有积极的作用。 ...

    xstream-1.4.8.jar

    xml与java互相转换,比较简单的一个工具类,对xml的支持比较完美

    xstream服务端

    xml与java互相转换,比较简单的一个工具类,对xml的支持比较完美

    SSH2 整合简单增删改查实例,仅供学习使用

    4. **Gson**:Gson是Google提供的一个Java库,用于在Java对象和JSON数据之间进行互相转换。在这个例子中,Gson可能被用到了后台数据与前端Ajax交互的过程中,将Java对象转换成JSON字符串,通过Ajax发送到客户端,...

    jeesite技术分析ppt资料

    - JaxbMapper: XML与Object之间的互相转换。 - JsonMapper: JSON与Object之间的互相转换。 - Cryptos、Digests: 密钥工具类(SHA1、MD5)。 - Collections3: 集合对象工具类。 - Encodes: 各种编码转换工具类。 ...

Global site tag (gtag.js) - Google Analytics