`

使用xstream实现对JavaBean与xml字符串的互转

阅读更多

近来项目中需要实现javabean与xml文件的互转,一个同事发现了xstream不错。简洁易用,不错的开源组件,在这里推荐一下。并附上使用示例与jar包作为笔记。有需要的同学可以学学。

 

1.Person javabean类

 

public class Person {
	private String firstname;
	private String lastname;
	private PhoneNumber phone;
	private PhoneNumber fax;

	public Person() {
		super();
	}

	public Person(String firstname, String lastname) {
		super();
		this.firstname = firstname;
		this.lastname = lastname;
	}

	public String getFirstname() {
		return firstname;
	}

	public void setFirstname(String firstname) {
		this.firstname = firstname;
	}

	public String getLastname() {
		return lastname;
	}

	public void setLastname(String lastname) {
		this.lastname = lastname;
	}

	public PhoneNumber getPhone() {
		return phone;
	}

	public void setPhone(PhoneNumber phone) {
		this.phone = phone;
	}

	public PhoneNumber getFax() {
		return fax;
	}

	public void setFax(PhoneNumber fax) {
		this.fax = fax;
	}

	@Override
	public String toString() {
		return "Person [firstname=" + firstname + ", lastname=" + lastname
				+ ", phone=" + phone + ", fax=" + fax + "]";
	}

}

 


2.PhoneNumber javabean类

public class PhoneNumber {
	private int code;
	private String number;

	public PhoneNumber() {
		super();
	}

	public PhoneNumber(int code, String number) {
		super();
		this.code = code;
		this.number = number;
	}

	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public String getNumber() {
		return number;
	}

	public void setNumber(String number) {
		this.number = number;
	}

	@Override
	public String toString() {
		return "PhoneNumber [ code =" + code + ", number=" + number + "]";
	}


3.转换测试类

import org.junit.Test;
import com.thoughtworks.xstream.XStream;

public class ConvertTest {

	/**
	 * 将Person转换成xml字符串
	 */
	@Test
	public void personToXML() {
		XStream xstream = new XStream();
		xstream.alias("person", Person.class);
		xstream.alias("phonenumber", PhoneNumber.class);
	
		Person joe = new Person("Joe", "Walnes");
		joe.setPhone(new PhoneNumber(123, "1234-456"));
		joe.setFax(new PhoneNumber(123, "9999-999"));

		String xml = xstream.toXML(joe);
		System.out.println(xml);
	}
        //输出结果
	/*
	 * <person>
  <firstname>Joe</firstname>
  <lastname>Walnes</lastname>
  <phone>
    <code>123</code>
    <number>1234-456</number>
  </phone>
  <fax>
    <code>123</code>
    <number>9999-999</number>
  </fax>
</person>
	 */

	/**
	 * 将xml字符串转换成Person
	 */
	@Test
	public void xmlToPerson() {
		String site = "CAN";
		XStream xstream = new XStream();
		xstream.alias("person", Person.class);
		xstream.alias("phonenumber", PhoneNumber.class);

		String xml = "<person><firstname>Joe</firstname><lastname>Walnes</lastname><phone><code>123</code><number>1234-456</number></phone><fax><code>123</code><number>9999-999</number></fax></person>";
		xstream.omitField(Person.class, site);
		Person newJoe = (Person) xstream.fromXML(xml);
		System.out.println(newJoe.toString());
	}
        //输出结果
	//Person [firstname=Joe, lastname=Walnes, phone=PhoneNumber [ code = 123, number=1234-456],
        // fax=PhoneNumber [ code =123, number=9999-999]]

}
 
官网:http://xstream.codehaus.org/tutorial.html


参考网址:http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html



 

分享到:
评论
2 楼 ahomeeye 2012-08-02  
xuxl 写道
不错哦   多谢分享

不客气。能够共同进步那是很美好的事情。
1 楼 xuxl 2012-07-30  
不错哦   多谢分享

相关推荐

    将对象(java bean)转换为xml字符串

    在Java开发中,有时我们需要将Java Bean对象转换成XML字符串,以便于数据交换或存储。XStream库就是这样一个工具,它提供了一种简单且高效的方式来实现这个目标。XStream不仅能够将Java对象转换为XML,还可以反向将...

    XStream在JavaBean与XML/JSON 之间相互转换

    XStream也支持将XML字符串转换回Java对象: ```java String xmlInput = "&lt;person&gt;&lt;firstName&gt;John&lt;/firstName&gt;&lt;lastName&gt;Doe&lt;/lastName&gt;&lt;/person&gt;"; Person person = (Person) xstream.fromXML(xmlInput); ``` 这...

    xstream 让javabean和xml互相转换

    反序列化则是将XML字符串恢复为Java对象的过程。同样以User类为例: ```java User deserializedUser = (User) xstream.fromXML(xml); ``` XStream会自动解析XML并创建相应的User对象。如果XML结构复杂,包含集合或...

    xstream-1.3.1.jar javabean与xml之间的转化

    XStream 是一个强大的 Java 库,它允许程序员以一种简单直观的方式将 Java 对象序列化为 XML,同时也可以从 XML 文档反序列化回 ...在项目中使用 xstream-1.3.1.jar,可以轻松实现 Java 对象与 XML 文档之间的转换。

    Xml与javaBean互转.zip

    反之,也可以从JavaBean创建一个`Document`,然后将其转换为XML字符串。 3. **SAX(Simple API for XML)**:SAX是一种基于事件驱动的XML解析器,适合处理大型XML文档。与DOM不同,SAX不需要将整个XML文档加载到...

    json、javaBean、xml互转的几种工具介绍

    这篇博客主要探讨了几种用于这些格式互转的工具,下面将详细介绍这些工具及其使用方法。 1. **Gson** (Google的JSON库) Gson是由Google提供的一个开源库,它可以将Java对象转换为JSON字符串,反之亦然。使用Gson,...

    xml与javabean之间的相互转换,很方便,导入即可使用

    `toXML()` 方法将JavaBean对象转换成XML字符串,而 `fromXML()` 方法则相反,将XML字符串转换回JavaBean对象。 XStream库还支持处理复杂的Java对象结构,如集合、嵌套对象等,无需额外的配置。同时,它还提供了对...

    javaBean生成xml

    4. 将JavaBean转换为XML:通过调用XStream的`toXML()`方法,将JavaBean对象转换为XML字符串。 ```java Person person = new Person(); person.setName("John"); person.setAge(30); String xml = xstream.toXML...

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

    例如,你可以创建一个`XStream`实例,然后使用`fromXML()`方法将XML字符串转换为Java对象,使用`toXML()`方法将Java对象转换为XML字符串。这样,无论是JavaBean还是XML,都能方便地在两者之间进行转换。 最后,关于...

    javabean2xml实例与jox-1.17b3.jar

    这个示例可能包括创建JavaBean对象,设置其属性,然后使用JOX的API将其转换为XML字符串或写入XML文件。 总的来说,这个实例教程或库主要面向Java开发者,帮助他们理解和使用JOX库来实现JavaBean对象与XML之间的相互...

    xstream-1.3.1.zip

    例如,你可以逐个添加元素,然后通过XStream的`toXML()`方法生成完整的XML字符串。这种方式既灵活又高效,特别适合于动态生成或解析XML的场景。 在XStream中,"javabean与xml之间的转化"是通过反射和类型转换机制...

    xStream用法总结

    XStream 是一个强大的 Java 库,它能够方便地将 Java 对象序列化为 XML 字符串,同时也可以将 XML 文档反序列化为对应的 Java 对象。这个库特别适用于那些需要在应用程序中处理 XML 数据的场景,例如数据持久化、...

    Xstream操作Xml与Json.doc

    只需添加一个 JSON 处理器,如 `jettison`,然后调用 `toXML()` 方法,它会返回 JSON 字符串: ```java Xstream xstream = new Xstream(new JettisonMappedXmlDriver()); String json = xstream.toXML(yourObject);...

    xstream-1.3.1.jar.zip

    这个方法接受一个XML字符串,然后返回相应的Java对象。XStream会自动处理对象的实例化、字段赋值以及集合的创建。例如,如果你有一个如下的XML: ```xml &lt;name&gt;John Doe &lt;age&gt;30 ``` 可以通过以下方式将...

    xml和bean之间的相互转换源码

    然后,可以使用`TransformerFactory`和`Transformer`将`Document`对象转换回XML字符串。 4. **第三方库**: 除了Java自带的API外,还有一些第三方库如Apache的`XStream`,它提供了更简洁的API来实现XML和Bean的...

    xstream-1.4.4.jar

    XStream库的核心功能在于它能将Java对象直接转换成XML字符串,同时也能从XML字符串反序列化回原生的Java对象。这种能力使得开发者能够轻松地在不同的系统之间传递复杂的数据结构,而无需手动编写XML解析或生成代码。...

    bean2xml.zip

    `toXML()`方法则负责将Java对象转换为XML字符串。 除了基本类型,XStream还支持处理复杂的嵌套结构,包括数组、集合和自定义类。例如,如果`Person`类还有一个`Address`属性,XStream同样可以很好地处理: ```java...

    xStream 开发指南

    3. **序列化**:使用 xStream.toXML() 方法将 Java 对象转换为 XML 字符串,或使用 toJSON() 转换为 JSON。 4. **反序列化**:利用 xStream.fromXML() 或 fromJSON() 方法,将 XML 或 JSON 字符串恢复为 Java 对象。...

    xpp3_min-1.1.4c.jar.zip

    XStream是一款强大的Java库,它的主要功能是将Java对象序列化成XML格式的字符串,同时也能将XML数据反序列化回Java对象。这对于数据存储、网络传输或者配置文件的读写非常有用。描述中提到“j将javabean装换成xml”...

Global site tag (gtag.js) - Google Analytics