XML与Java对象之间相互转换。
package commons;
import java.beans.IntrospectionException;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import org.apache.commons.betwixt.io.BeanReader;
import org.apache.commons.betwixt.io.BeanWriter;
import org.xml.sax.SAXException;
public class TestBetwixt {
public static void main(String[] args) throws IOException, SAXException{
/**********************************************bean转化Xml*******************************************************/
// 先创建一个StringWriter,我们将把它写入为一个字符串
StringWriter outputWriter = new StringWriter();
// Betwixt在这里仅仅是将Bean写入为一个片断
// 所以如果要想完整的XML内容,我们应该写入头格式
outputWriter.write("<?xml version='1.0' encoding='UTF-8' ?>\n");
// 再创建一个BeanWriter,写入我们的outputWriter
BeanWriter beanWriter = new BeanWriter(outputWriter);
// 配置beanWriter
beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);
beanWriter.getBindingConfiguration().setMapIDs(false);
beanWriter.enablePrettyPrint();
// 如果这个地方不传入XML的根节点名,Betwixt将自己猜测是什么
// 但是让我们将例子Bean名作为根节点吧
try {
beanWriter.write("user", new User("csc", 21));
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IntrospectionException e) {
e.printStackTrace();
}finally{
//输出结果
System.out.println(outputWriter.toString());
// Betwixt写的是片断而不是一个文档,所以不要自动的关闭掉writers或者streams,
//但这里仅仅是一个例子,不会做更多事情,所以可以关掉
try {
outputWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**********************************************bean转化Xml*******************************************************/
/**********************************************Xml转化bean*******************************************************/
// 先创建一个XML,由于这里仅是作为例子,所以我们硬编码了一段XML内容
StringReader xmlReader = new StringReader("<?xml version='1.0' encoding='UTF-8' ?><user><age>21</age><name>csc</name></user>");
// 在创建一个BeanReader
BeanReader beanReader = new BeanReader();
//配置reader
beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);
beanReader.getBindingConfiguration().setMapIDs(false);
//注册beans,以便betwixt知道XML将要被转化为一个什么Bean
try {
beanReader.registerBeanClass("user", User.class);
//现在我们对XML进行解析
User user = (User) beanReader.parse(xmlReader);
//输出结果
System.out.println(user);
} catch (IntrospectionException e) {
e.printStackTrace();
}
/**********************************************Xml转化bean*******************************************************/
}
}
运行结果
<?xml version='1.0' encoding='UTF-8' ?>
<user>
<age>21</age>
<name>csc</name>
</user>
User [name=csc, age=21]
分享到:
相关推荐
Betwixt 是 Apache Commons 中的一个工具类,提供了 XML 与 Java 对象之间相互转换的功能。通过使用 Betwixt,可以轻松地将 XML 文件转换为 Java 对象,或者将 Java 对象转换为 XML 文件。 Codec Codec 是 Apache ...
Commons-Lang 提供了许多许多通用的工具类集,提供了一些java.lang中类的扩展功能 Latka Commons-Latka 是一个HTTP 功能测试包,用于自动化的QA,验收和衰减测试. Launcher Launcher 组件是一个交叉平台的Java 应用...
总结来说,Apache Commons Betwixt是一个用于XML和Java对象间映射的工具,0.8版本提供了一个早期的功能集,包括基本数据类型和复杂对象的映射。开发者可以利用它来进行数据交换、序列化和反序列化操作。提供的两个...
在实际应用中,Apache Commons Betwixt可能与其他Java XML处理库(如JAXB、XStream)一起比较,选择最适合项目需求的工具。虽然Betwixt相对较为简单,但它在处理基本的XML数据绑定时仍然非常有效。对于更复杂的需求...
"Apache Commons工具类详解" Apache Commons是一个开源的工具类库,提供了许多实用的工具类,帮助开发者解决平时编程经常会遇到的问题,减少重复劳动。下面是Apache Commons中的一些常用工具类的介绍: 1....
1. **commons-collections**:提供了一些高级数据结构和算法,如多维数组、堆、优先队列、映射和集合的工具类,以及对Java集合框架的扩展。 2. **commons-beanutils**:提供了一组实用工具类来简化JavaBeans操作,...
Java中的Apache Commons Betwixt库提供了一个简单的方法来映射Java Bean对象和XML文档之间的数据,使得在处理数据交换时能轻松地实现bean到XML的转换和XML到bean的反转换。本篇文章将深入探讨如何使用Commons ...
5. **commons-io-1.4-bin.zip**:Apache Commons IO库,包含了文件和流操作的实用工具,如文件比较、读写、过滤、转换等。 6. **commons-net-1.4.1.zip**:提供了一系列网络通信相关的类,如FTP、Telnet和NNTP协议...
Apache Commons工具集是一个开源的工具集,包含了许多实用的工具类,旨在解决平时编程中经常会遇到的问题,减少重复劳动。下面对Apache Commons工具集中的部分组件进行详细介绍: 1. BeanUtils:提供了对于JavaBean...
总的来说,Apache Commons Betwixt是一个强大的工具,用于在JavaBean和XML之间建立便捷的桥梁。通过理解和使用这个库,开发者可以更高效地管理数据,实现对象的序列化和反序列化,从而提升应用程序的灵活性和可扩展...
9. **commons-betwixt-0.8.jar**: 是一个 XML 和 Java 对象之间的绑定工具,能够自动将 Java 对象序列化为 XML 文档,或反序列化为 Java 对象,简化了 XML 编程。 10. **commons-beanutils-1.8.3.jar**: 提供了对 ...
这个库是 Apache Commons 项目的一部分,旨在简化对象与 XML 之间的映射过程。在本文中,我们将详细介绍 Betwixt 的使用方法、所需的依赖以及一个简单的示例。 首先,使用 Betwixt 需要导入以下三个核心库: 1. `...
1. **引入库**:你需要将`commons-betwixt-0.8.jar`文件添加到你的项目类路径中,这是使用Betwixt的前提。 2. **创建Java Bean**:定义一个Java类,包含你想要映射到XML的属性。这些属性将对应XML文档中的元素。 3...
JavaBean和XML之间的转换在软件...在给定的资源中,`commons-betwixt-0.8.jar`提供了Betwixt库,而`Bean2xml.java`可能是实现转换的工具类,简化了开发工作。在实际项目中,根据需求和性能考虑选择合适的方法进行转换。
Apache Commons BeanUtils库提供了一些实用工具类,帮助开发者更方便地操作JavaBeans。它简化了JavaBean属性的读取和设置,支持属性的复制,以及对象和Map之间的相互转换。例如,你可以使用BeanUtils.copyProperties...
它还包含了一些实用工具类,用于操作和转换集合。 2. **commons-beanutils-1.8.0-bin.zip**:Apache Commons BeanUtils库简化了JavaBean对象的属性访问,提供了方便的方法来操作JavaBean属性,无需直接调用getter和...
7. **commons-lang-2.4-bin.zip**:Apache Commons Lang的2.4版本,包含了一系列高级字符串和语言操作的工具类。 8. **commons-io-1.4-bin.zip**:Apache Commons IO的1.4版本,提供了许多与I/O相关的实用工具,如...
在IT行业中,Web服务接口开发...Apache Commons Betwixt提供了这样一个直观且强大的工具,使得这一过程变得简单易行。通过实践和研究提供的示例代码,开发者可以深入理解Betwixt的工作原理,并将其应用到自己的项目中。
Apache Commons Betwixt是Apache软件基金会的一个项目,它提供了一个用于XML到Java对象绑定的工具。通过使用Betwixt,开发者可以轻松地将XML文档解析为Java对象,或者将Java对象序列化为XML文档。这极大地简化了数据...
- `Apache Commons Lang3`包含了大量对Java基础类型进行扩展的工具类,如`StringUtils`和`ArrayUtils`,提供了字符串和数组的处理方法,如拼接、分割、比较、填充等。 13. **SLF4J**: - Simple Logging Facade ...