首先我们把xstream-distribution-1.4.4-bin里面的jar加到编译和运行环境里。
然后,我们定义一个pojo类。注意它不需要implements java.io.Serializable
public class SexyWoman {
private String name;
private long high;
private long weight;
public static String face="pretty";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getHigh() {
return high;
}
public void setHigh(long high) {
this.high = high;
}
public long getWeight() {
return weight;
}
public void setWeight(long weight) {
this.weight = weight;
}
}
然后我们去写运行测试类。
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
public class XStreamTest {
public static void main(String[] args) {
SexyWoman sw1=new SexyWoman();
sw1.setName("maggie");
sw1.setHigh(172);
sw1.setWeight(65);
sw1.face="ddd";
String xmlContent=doPojo2Xml(sw1);
System.out.println(xmlContent);
System.out.println("\n\n\n");
SexyWoman sw2=new SexyWoman();
Object obj=doXml2Pojo(xmlContent,sw2);
System.out.println(((SexyWoman)obj).getName());
}
public static String doPojo2Xml(Object obj){
XStream xstream=new XStream(new DomDriver());
xstream.alias(obj.getClass().getSimpleName(), obj.getClass());
String xmlContent=xstream.toXML(obj);
return xmlContent;
}
public static Object doXml2Pojo(String xmlContent,Object obj){
XStream xstream=new XStream(new DomDriver());
xstream.alias(obj.getClass().getSimpleName(), obj.getClass());
Object getObj=xstream.fromXML(xmlContent);
return getObj;
}
}
最后输出
<SexyWoman>
<name>maggie</name>
<high>172</high>
<weight>65</weight>
</SexyWoman>
maggie
这里可以发现 static 属性并没有被进入xml中。
这里我们要注意的是String最大长度是65xxx, 所以我们不能用太大的类和xml.否则会出问题。当然Xstream开源里有另外的api专门针对这种问题。
如果我们给她加辆车呢
public class Car implements java.io.Serializable{
private String cardName;
public String getCardName() {
return cardName;
}
public void setCardName(String cardName) {
this.cardName = cardName;
}
}
public class XStreamTest {
public static void main(String[] args) {
SexyWoman sw1=new SexyWoman();
sw1.setName("maggie");
sw1.setHigh(172);
sw1.setWeight(65);
sw1.face="ddd";
Car car1=new Car();
car1.setCardName("ppo");
sw1.setCar(car1);
String xmlContent=doPojo2Xml(sw1);
System.out.println(xmlContent);
System.out.println("\n\n\n");
SexyWoman sw2=new SexyWoman();
Object obj=doXml2Pojo(xmlContent,sw2);
System.out.println(((SexyWoman)obj).getName());
}
public static String doPojo2Xml(Object obj){
XStream xstream=new XStream(new DomDriver());
xstream.alias(obj.getClass().getSimpleName(), obj.getClass());
String xmlContent=xstream.toXML(obj);
return xmlContent;
}
public static Object doXml2Pojo(String xmlContent,Object obj){
XStream xstream=new XStream(new DomDriver());
xstream.alias(obj.getClass().getSimpleName(), obj.getClass());
Object getObj=xstream.fromXML(xmlContent);
return getObj;
}
}
那么就输出了
<SexyWoman>
<name>maggie</name>
<high>172</high>
<weight>65</weight>
<car>
<cardName>ppo</cardName>
</car>
</SexyWoman>
maggie
分享到:
相关推荐
本篇文章将深入探讨xStream如何实现Java对象与XML和JSON的相互转换,并提供详细的代码示例。 ### 1. xStream的安装与引入 首先,你需要在项目中添加xStream的依赖。如果你使用的是Maven,可以在pom.xml文件中添加...
XStream是一款强大的库,它使得Java对象与XML之间的转换变得简单易行。本篇文章将深入探讨如何利用XStream进行Java对象到XML的转换,并将其存储到SD卡上。 首先,XStream的核心功能在于它可以将Java对象直接转换为...
XStream 的核心功能是通过`toXML()`和`fromXML()`两个方法来实现对象和XML之间的转换。首先,你需要添加必要的依赖,即 `xstream-1.3.1.jar` 到你的项目中。 ### 将对象转换为XML 1. **创建对象** - 在转换之前,...
标题中的“XStream实现Object与XML转换解决方案”指的是一个Java库——XStream,它提供了一种简单的方法来序列化和反序列化Java对象到XML,反之亦然。这个库广泛用于将程序数据保存到XML文件或者从XML数据恢复对象,...
这两个工具都提供了简单易用的API,帮助我们实现XML到对象(Object-to-XML)和对象到XML(XML-to-Object)的转换。 **XStream** XStream是Joe Walnes创建的一个开源库,它允许开发者以一种直观、简洁的方式在Java...
XML(Extensible Markup Language)是一种结构化数据格式,广泛用于数据交换和配置文件,而JSON(JavaScript Object Notation)则因其简洁性和易读性,常用于前端与后端的数据交互。XStream是一个强大的Java库,它...
XStream是一个强大的Java库,它允许开发者方便地将Java对象序列化为XML,同时也能将XML数据反...通过理解和掌握XStream的用法,开发者可以更高效地处理数据序列化需求,无论是在存储、传输还是解析XML文档的场景下。
- DOM解析:Document Object Model,它一次性加载整个XML文档到内存,形成一棵树形结构,便于遍历和修改。这种方式适用于小规模的XML文件,因为内存消耗较大。 - SAX解析:Simple API for XML,基于事件驱动,逐行...
总之,Xstream提供了一个强大而灵活的框架,使得XML,Object和Json之间的转换变得简单。它的易用性、稳定性和高度可定制性使其成为Java开发中的得力工具。理解并熟练使用Xstream,可以极大地提高开发效率和代码的可...
在处理复杂的XML文件时,Xstream因其简单易用和灵活性而备受青睐。本篇文章将深入探讨如何利用Xstream解析XML文件,并将解析后的数据存储到MySQL数据库中。 首先,我们需要了解Xstream的基本用法。Xstream的核心...
1. xstream-1.4.jar:这是XStream的主要库文件,包含了所有必要的类和方法,用于实现XML和Java对象的相互转换。 2. kxml2-2.3.0.jar:这是一个轻量级的XML解析器,常被XStream用来作为XML读写的底层实现。KXML2提供...
2. 反序列化:将XML还原为Java对象 从XML字符串创建Java对象,使用`fromXML()`方法。 ```java User deserializedUser = (User) xstream.fromXML(xml); System.out.println(deserializedUser.getName()); // 输出 ...
为了方便地将XML数据与Java对象(POJO,Plain Old Java Object)之间进行转换,XStream库应运而生。本项目提供了一个完整的Java工程示例,演示了如何使用XStream实现XML到POJO以及POJO到XML的双向转化,并包含了必要...
xStream是一个强大的库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。在这个场景中,它同样能够处理JSON转换,虽然JSON不是其原生支持的格式,但通过一些额外的配置和库,如json-simple,...
首先,XStream是一个开源库,由Johannes Leutenegger创建,它通过简单的API提供XML序列化和反序列化。这个库的特点在于它能够将Java对象直接映射到XML,反之亦然,而无需编写大量的代码。 在开始使用XStream之前,...
XStream是一个开源库,它为Java对象提供了简单且直观的XML序列化和反序列化的解决方案。它不仅能够将Java对象转换成XML,反之亦然,还能支持JSON格式的转换。这个强大的工具在处理数据交换、持久化或配置文件时非常...
XStream和Xpp3是两个常用的库,用于实现Java对象与XML之间的转换。本文档将详细介绍如何使用XStream和Xpp3进行对象到XML的转换,并解决可能出现的问题。 首先,要使用XStream和Xpp3,你需要引入相应的库文件。在本...
Xstream 是一个 Java 库,用于处理 XML 文件的序列化和反序列化,同时也支持将 JavaBean 转换为 JSON 格式。它的核心理念是通过简单的 API 设计,使得 XML 序列化过程变得简洁,无需额外的映射文件或辅助类。 ### 1...
总之,xStream是一个功能强大且灵活的工具,能够方便地处理Java对象与XML和JSON之间的转换,极大地简化了数据序列化和反序列化的任务,尤其是在互联网应用中,对于数据交换和存储具有很高的实用价值。
例如,`MyObject myObject = (MyObject) xstream.fromXML(new FileReader("output.xml"))`将从“output.xml”文件加载对象。 除了基本的序列化和反序列化,XStream还支持更高级的功能,如自定义转换器和命名空间...