- 浏览: 307059 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
wst0350:
点赞,有空深入讲解下原理
Servlet、Filter 和 Listener 调用顺序、生命周期的实验分析 -
tuspark:
Eclipse中高亮设置内容还有很多细节选项可以设置的,可以看 ...
Eclipse 设置匹配代码高亮 -
xichao1929:
这个时候,怎么启动发布的项目呢?????
JBoss设置为Windows服务 -
xiaozi7:
非常感谢,楼主的英语水平不一般那
WebSphere MQ Version 7 发布订阅相关配置 -
qtlkw:
slave没玩过
Hudson: java.lang.OutOfMemoryError: Java heap space error
转:
/** *@author: chenyoulong *@Title:PersonTest.java *@date 2012-9-28 下午3:25:09 *@Description:TODO */ package com.test; import java.util.ArrayList; import java.util.List; import com.entity.PersonBean; import com.entity.PersonBean.Animal; import com.entity.PersonBean.Friends; import com.entity.PersonBean.Pets; import com.entity.PersonBean.PhoneNumber; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; /** * @ClassName:PersonTest * @author: chenyoulong Email: chen.youlong@payeco.com * @date :2012-9-28 下午3:25:09 * @Description:TODO */ public class PersonTest { /** * @Title: main * @Description: TODO * @param args * @return void */ public static void main(String[] args) { // TODO Auto-generated method stub // toXml // String xmlStr=new PersonTest().toXml(); // toBean PersonBean per = new PersonTest().toBean(); // String xmlStr="<person>"+ // "<firstName>chen</firstName>"+ // "<lastName>youlong</lastName>"+ // "<telphone>"+ // "<code>137280</code>"+ // "<number>137280968</number>"+ // "</telphone>"+ // "<faxphone>"+ // "<code>20</code>"+ // "<number>020221327</number>"+ // "</faxphone>"+ // "<friends>"+ // "<name>A1</name>"+ // "<name>A2</name>"+ // "<name>A3</name>"+ // "</friends>"+ // "<pets>"+ // "<pet>"+ // "<name>doly</name>"+ // "<age>2</age>"+ // "</pet>"+ // "<pet>"+ // "<name>Ketty</name>"+ // "<age>2</age>"+ // "</pet>"+ // "</pets>"+ // "</person>"; // PersonBean person=XmlUtil.toBean(xmlStr, PersonBean.class); // System.out.println("person=firstname=="+person.getFirstName()); // System.out.println("person==Friends==name1=="+person.getFriend().getName().get(0)); // System.out.println("person==Pets==name2=="+person.getPet().getAnimalList().get(1).getName()); // } /** * 注解生产xml * * @Title: toXml * @Description: TODO * @return String */ public String toXml() { PersonBean per = new PersonBean(); per.setFirstName("chen"); per.setLastName("youlong"); PhoneNumber tel = new PhoneNumber(); tel.setCode(137280); tel.setNumber("137280968"); PhoneNumber fax = new PhoneNumber(); fax.setCode(20); fax.setNumber("020221327"); per.setTel(tel); per.setFax(fax); // 测试一个标签下有多个同名标签 List<String> friendList = new ArrayList<String>(); friendList.add("A1"); friendList.add("A2"); friendList.add("A3"); Friends friend1 = new Friends(); friend1.setName(friendList); per.setFriend(friend1); // 测试一个标签下循环对象 Animal dog = new Animal("doly", 2); Animal cat = new Animal("Ketty", 2); List<Animal> petList = new ArrayList<Animal>(); petList.add(dog); petList.add(cat); Pets pet = new Pets(); pet.setAnimalList(petList); per.setPet(pet); XStream xstream = new XStream(new DomDriver("utf-8")); // 指定编码解析器 xstream.processAnnotations(PersonBean.class);// 如果没有这句,xml中的根元素会是<包.类名>;或者说:注解根本就没生效,所以的元素名就是类的属性 xstream.aliasSystemAttribute(null, "class"); String xmlString = xstream.toXML(per); System.out.println("xml===" + xmlString); return xmlString; } /** * toBean * * @Title: toBean * @Description: TODO * @return * @return PersonBean */ public PersonBean toBean() { String xmlStr = "<person>" + "<firstName>chen</firstName>" + "<lastName>youlong</lastName>" + "<telphone>" + "<code>137280</code>" + "<number>137280968</number>" + "</telphone>" + "<faxphone>" + "<code>20</code>" + "<number>020221327</number>" + "</faxphone>" + "<friends>" + "<name>A1</name>" + "<name>A2</name>" + "<name>A3</name>" + "</friends>" + "<pets>" + "<pet>" + "<name>doly</name>" + "<age>2</age>" + "</pet>" + "<pet>" + "<name>Ketty</name>" + "<age>2</age>" + "</pet>" + "</pets>" + "</person>"; XStream xstream = new XStream(new DomDriver()); // 注意:不是new Xstream(); // 否则报错:java.lang.NoClassDefFoundError: // org/xmlpull/v1/XmlPullParserFactory xstream.processAnnotations(PersonBean.class); PersonBean person = (PersonBean) xstream.fromXML(xmlStr); System.out.println("person=firstname==" + person.getFirstName()); System.out.println("person==Friends==name1==" + person.getFriend().getName().get(0)); System.out.println("person==Pets==name==" + person.getPet().getAnimalList().get(1).getName()); return person; } /** * 输出xml和解析xml的工具类 * * @ClassName:XmlUtil * @author: chenyoulong Email: chen.youlong@payeco.com * @date :2012-9-29 上午9:51:28 * @Description:TODO */ public static class XmlUtil { /** * java 转换成xml * * @Title: toXml * @Description: TODO * @param obj * 对象实例 * @return String xml字符串 */ public static String toXml(Object obj) { XStream xstream = new XStream(); // XStream xstream=new XStream(new DomDriver()); //直接用jaxp dom来解释 // XStream xstream=new XStream(new DomDriver("utf-8")); // //指定编码解析器,直接用jaxp dom来解释 // //如果没有这句,xml中的根元素会是<包.类名>;或者说:注解根本就没生效,所以的元素名就是类的属性 xstream.processAnnotations(obj.getClass()); // 通过注解方式的,一定要有这句话 return xstream.toXML(obj); } /** * 将传入xml文本转换成Java对象 * * @Title: toBean * @Description: TODO * @param xmlStr * @param cls * xml对应的class类 * @return T xml对应的class类的实例对象 * * 调用的方法实例:PersonBean person=XmlUtil.toBean(xmlStr, * PersonBean.class); */ public static <T> T toBean(String xmlStr, Class<T> cls) { // 注意:不是new Xstream(); 否则报错:java.lang.NoClassDefFoundError: // org/xmlpull/v1/XmlPullParserFactory XStream xstream = new XStream(new DomDriver()); xstream.processAnnotations(cls); T obj = (T) xstream.fromXML(xmlStr); return obj; } } }
发表评论
-
es使用两种方式
2018-06-28 16:26 0第一种方式: 使用TransportClient packag ... -
hbase
2018-06-25 13:50 0package cn.com.duiba.appordersy ... -
guava
2017-09-22 18:03 6381.Guava Cache的get/getIfPresent方 ... -
转:架构
2017-06-23 08:13 493架构是软件的核心和灵魂,没有好的架构的软件经过一段时间的迭代后 ... -
使用 redis 减少 秒杀库存 超卖思路
2017-06-22 23:58 561612月份重构公司社群活动产品,原来自己不是很成熟,按传统的形式 ... -
经典笔试题
2017-06-21 23:30 495public class BaseTest { pu ... -
Restful vs RPC
2017-01-23 10:54 865传统的RPC一般是基于二 ... -
自动产生随机数
2016-11-11 10:54 555/** * java生成随机数字和字母组合 ... -
commons-lang常用工具类StringEscapeUtils
2016-11-10 20:12 8831.escapeSql 提供sql转移功能,防止sql注入攻击 ... -
Java8:Lambda表达式增强版Comparator和排序
2016-10-27 10:32 2693http://www.importnew.com/15259. ... -
Java序列化几点注意事项
2016-10-26 17:02 894静态变量不属于对象,属于类,不能被序列化.还有瞬态的变量也不能 ... -
Rest vs dubbo
2016-09-15 18:10 0Rest 基于http, 大数据量和安全性可能不佳 dubbo ... -
List删除element两种方式的不同
2016-07-26 12:41 679public class DateUtilTest { ... -
Xmemcached——比spymemcached更快
2016-07-18 10:23 466Xmemcached是一个高性能的 ... -
velocity 缓存设置
2016-07-04 20:54 1062#velocity 是否开启缓存 velocity.resou ... -
Java8 Stream用法
2016-07-04 18:58 01. collect(toList()) 由stream里的值 ... -
熔断器设计模式
2016-05-22 23:14 598转载: http://www.cnblogs.com/ ... -
Date 参数
2016-04-22 21:44 561Oracle TO_CHAR parameters: The ... -
Dubbo安装部署
2016-04-18 01:16 1607Jdk-1.6.30以上版本 Tomcat-7 ... -
java read也需要加锁
2016-02-27 18:11 642今天被问到read需不需要加锁,结果没答上来。自己写了一个程序 ...
相关推荐
XStream:XStream是一个简单易用的Java库,用于序列化和反序列化对象。它可以将Java对象转换为XML文档,也可以将XML文档转换为Java对象。 pom引用 <groupId>com.thoughtworks.xstream</groupId> <artifactId>...
这个工具类的目标就是利用xStream的功能,方便地将XML文档转换为Java Bean对象,以及将Bean对象转换为XML字符串。 xStream的核心思想是通过反射和类型映射来实现对象与XML之间的转换。它使用一种称为“annoation”...
在`xmlAnalysis`文件夹中,可能包含了一个简单的Java程序,演示了如何使用DOM、SAX、StAX和XStream解析XML文件,并展示了XStream如何在JavaBean与XML之间进行转换。你可以运行这些代码,观察输出结果,以加深理解。...
1. xstream-1.4.jar:这是XStream的主要库文件,包含了所有必要的类和方法,用于实现XML和Java对象的相互转换。 2. kxml2-2.3.0.jar:这是一个轻量级的XML解析器,常被XStream用来作为XML读写的底层实现。KXML2提供...
XStream不仅能够将Java对象转换为XML,还可以反向将XML转换回Java对象,极大地简化了对象与XML之间的序列化和反序列化过程。 XStream库是由Johannes Lehtinen创建的一个开源项目,它是基于Java的,可以处理复杂的...
本篇将详细介绍两种常用的Java XML与Bean互转方法:XStream库和JAXB(Java Architecture for XML Binding)框架。 一、XStream库 1. **XStream简介**: XStream是一个用于Java的轻量级库,它提供了一种简单的API来...
总之,"Converter between XML and Java Bean"涉及的关键知识点是利用如XStream这样的库实现XML与Java对象之间的转换,这在Java开发中是非常重要且实用的技能,尤其在处理数据交换、持久化存储和跨系统通信时。...
总结起来,XStream 1.3.1.jar提供了一个简单易用的API,使得Java开发者能轻松地在Java Bean对象和XML之间进行转换。它简化了序列化和反序列化的过程,是许多Java项目的理想选择,特别是那些需要处理XML数据流的项目...
XStream是一个开源库,它为Java对象提供了简单且直观的XML序列化和反序列化的解决方案。它不仅能够将Java对象转换成XML,反之亦然,还能支持JSON格式的转换。这个强大的工具在处理数据交换、持久化或配置文件时非常...
在Java开发中,XML(可扩展标记语言)和Bean对象之间的转换是非常常见的需求。XML用于数据存储和交换,而Bean对象则是Java中的数据容器。"xml to bean or bean to xml"这一主题涉及到如何将XML文档的数据映射到Java ...
- **简单易用:**XStream 提供了简洁的 API,使得在 Java 代码中进行 XML 和 Java 对象之间的转换变得非常容易。 - **自定义映射:**如果默认的自动映射不符合需求,可以使用注解或配置文件来自定义字段与 XML 元素...
XStream的核心思想是通过反射机制,将Java对象的字段映射到XML的元素和属性,以及反向操作将XML解析回Java对象。它的优势在于简洁的API和高度的自定义性,使得开发者可以轻松处理复杂的对象结构和序列化规则。 首先...
XStream是一款强大的Java库,它能将Java对象序列化为XML,同时也能将XML反序列化为Java对象,极大地简化了XML与JavaBean之间的交互。其工作原理主要是通过反射机制获取Java对象的属性,并将其映射到XML元素上。 ...
通过定义Java类和使用JAXB提供的`Marshaller`和`Unmarshaller`,我们可以方便地在Java对象和XML文档之间进行互换。对于更复杂的场景,例如Web服务交互,可能还需要其他相关的库,如`jaxws-api`。
总的来说,XML2Bean工具利用XStream库实现了XML数据和Java Bean之间的无缝转换,为开发者提供了便利。理解XML和Java Bean的概念,以及XStream的工作原理,将有助于更好地利用这个工具。而具体的实现细节,可以通过...
3. Java对象到XML和JSON: - JAXB允许直接将Java对象转换为XML,反之亦然。通过创建对应的Java类并使用`Marshaller`和`Unmarshaller`接口进行操作。 - Jackson库的`ObjectMapper`类可以将Java对象直接序列化为JSON...
除了Java自带的API外,还有一些第三方库如Apache的`XStream`,它提供了更简洁的API来实现XML和Bean的转换。XStream通过反射机制自动处理对象到XML的映射,只需简单的几行代码就可以完成转换。 5. **转换步骤**: ...
解压后,我们可以看到一个名为"bean2xml"的文件,这可能是Java源代码或者测试类,用于演示如何使用XStream进行转换。 要使用XStream,首先需要添加XStream库到项目中。如果你使用的是Maven,可以在pom.xml文件中...
通过Xstream可以轻松地将Java对象序列化为XML文档,或者将XML文档反序列化为Java对象。与传统的XML序列化方式相比,Xstream的优势在于它无需编写额外的辅助类或映射文件,简化了XML序列化的流程。 #### 二、Xstream...
XStream是一个强大的Java库,它允许开发者以XML格式序列化和反序列化Java对象。这个库简化了在Java对象和XML之间进行数据交换的过程。在本文中,我们将深入探讨XStream的工作原理、如何使用它来实现bean到XML、XML到...