- 浏览: 52684 次
- 性别:
文章分类
最新评论
1、pom.xml依赖包:
2、java代码实现转换
bean实体类:
User.java
UserList.java
3、xml转bean
4、bean转xml
bean转xml输出结果:
除了上面示例中用的注解,xstream还有下面几种注解也经常用到。
@XstreamOmitField 忽略字段
这相当于设置某些字段为临时属性,在转换中不再起作用。
@XStreamConverter(XXX.class) 转换器
XXX.class是一个实现了com.thoughtworks.xstream.converters.Converter接口的转换器,对某些类型的值进行转换,比如布尔值类型的true或false,如果不加转换器,默认生成的值就是true或false。xstream自带了BooleanConverter转换器,可以将默认值转换成需要的文本值,如果xstream没有需要的转换器就得自己实现Converter接口来自定义转换器。
根据大象的经验,为了少给自己找麻烦,比如避免使用转换器,最好将与XML元素或属性对应的Java对象属性都设置成String类型,当然列表还是要定义成List类型的。只要不是特别奇葩,一般情况下,示例部分就能满足绝大部分的需求。
<dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.7</version> </dependency>
2、java代码实现转换
bean实体类:
User.java
import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; // 别名注解,这个别名就是XML文档中的元素名,Java的属性名不一定要与别名一致 @XStreamAlias("user") public class User { @XStreamAlias("name") private String name; @XStreamAlias("age") private String age; @XStreamAlias("id") // 属性注解,此price就是book的属性,在XML中显示为:<user id="1"> @XStreamAsAttribute private Integer id; @XStreamAlias("address") private String address; @XStreamAlias("card") private String card; @XStreamAlias("gender") private String gender; /** setter和getter省略 */ }
UserList.java
import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import com.thoughtworks.xstream.annotations.XStreamImplicit; import java.util.ArrayList; import java.util.List; @XStreamAlias("users") public class UserList { @XStreamAlias("value") @XStreamAsAttribute private String value; // 隐式集合,加上这个注解可以去掉book集合最外面的<list></list>这样的标记 @XStreamImplicit private List<User> list = new ArrayList<User>(); public void addUser(User user){ this.list.add(user); } /** setter和getter省略 */ }
3、xml转bean
public static void xmlToBean(){ String xmlStr ="<users value=\"0\">\n" + " <user id=\"1\">\n" + " <name>jiandequn</name>\n" + " <age>29</age>\n" + " <address>深圳市西丽白芒村</address>\n" + " <card>1546464</card>\n" + " <gender>male</gender>\n" + " </user>\n" + "</users>"; XStream xStream = new XStream(new DomDriver("utf-8")); xStream.processAnnotations(UserList.class);; // 识别obj类中的注解 UserList userList = (UserList) xStream.fromXML(xmlStr); System.out.println(userList.getValue()); }
4、bean转xml
public static void beanToXml(){ User user = new User(); user.setAddress("深圳市西丽白芒村"); user.setAge("29"); user.setCard("1546464"); user.setId(1); user.setGender("male"); user.setName("jiandequn"); UserList userList = new UserList(); userList.setValue("0"); userList.addUser(user); XStream xStream = new XStream(new DomDriver("utf-8")); xStream.processAnnotations(userList.getClass());; // 识别obj类中的注解 // 以压缩的方式输出XML // StringWriter sw = new StringWriter(); // xStream.marshal(userList, new CompactWriter(sw)); // 以格式化的方式输出XML System.out.println( xStream.toXML(userList)); }
bean转xml输出结果:
<users value="0"> <user id="1"> <name>jiandequn</name> <age>29</age> <address>深圳市西丽白芒村</address> <card>1546464</card> <gender>male</gender> </user> </users>
除了上面示例中用的注解,xstream还有下面几种注解也经常用到。
@XstreamOmitField 忽略字段
这相当于设置某些字段为临时属性,在转换中不再起作用。
@XStreamConverter(XXX.class) 转换器
XXX.class是一个实现了com.thoughtworks.xstream.converters.Converter接口的转换器,对某些类型的值进行转换,比如布尔值类型的true或false,如果不加转换器,默认生成的值就是true或false。xstream自带了BooleanConverter转换器,可以将默认值转换成需要的文本值,如果xstream没有需要的转换器就得自己实现Converter接口来自定义转换器。
根据大象的经验,为了少给自己找麻烦,比如避免使用转换器,最好将与XML元素或属性对应的Java对象属性都设置成String类型,当然列表还是要定义成List类型的。只要不是特别奇葩,一般情况下,示例部分就能满足绝大部分的需求。
发表评论
-
java 之sftp实现
2018-03-31 17:41 656上周进行了linux环境下sftp的配置和用户权限的创建:ht ... -
java webService之CXF的使用
2018-03-29 14:25 446使用场景:华为VOD系统与媒资系统的接口,资产数据(元数据XM ... -
java 中jstat的用法
2018-03-20 18:06 715JDK自带VM分析工具jps,jstat,jmap,jcons ... -
javaEE性能优化
2018-03-20 16:41 500性能的优化一般可以从多方面入手,前端资源,java程序,数据传 ... -
jvm gc日志检查
2018-03-20 15:08 366JVM的GC日志的主要参数包括如下几个: -XX:+Pr ... -
负载均衡的几种原理
2018-03-19 16:05 467什么是负载均衡? 就 ... -
基于TCP协议实现RPC
2018-03-19 11:28 711RPC的全称:Remote Process Call,即远程过 ... -
java 多线程
2018-03-16 13:29 350Java 多线程编程 Java 给 ... -
SpringMVC执行流程图
2018-03-15 10:46 465SpringMVC 流程图 DispatcherServle ... -
Java中BIO、NIO、AIO的原理及其区别
2018-03-12 17:34 656IO的处理方式通常分为 ... -
基于Spring 自定义标签实现
2017-11-30 09:26 549一、源码分析: Spring标签的定义分为默认标签和自定义 ... -
java二维码的生成和解析
2017-09-26 11:15 431一、本文目的: 为了研究对支付宝和微信支付的统一路口管理 ... -
spring-data-redis
2017-09-18 11:54 731Spring-data-redis使用 1、maven依赖 ... -
java,redis
2017-09-18 11:32 354Redis 简介 Redis 是完全开源免费的,遵守BSD协议 ... -
Java JVM虚拟机知识要点
2017-08-30 10:25 5941、JVM虚拟机图解: ... -
java 上传小于占用空间为4k的jpg图片异常问题处理
2017-07-19 18:02 525javaWeb上传图片 jpg占用空间为4k时,Commons ... -
Springmvc 注入字符串与时间格式的转换
2017-03-24 11:10 1189以下列出两种spring支持的时间转换 -、方式一 1、 ... -
linux下修改war包
2017-03-06 15:32 1097Linux上修改war包上的文件 www.MyExceptio ... -
itellij idea 11.1.3 mybatis 自动构建代码
2016-11-16 09:50 442步骤一: 1、在工程中pom.xml加添 <buil ... -
intellij idea 下resin容器远程调试
2016-11-16 09:27 5381resin远程调试(我使用的是resin-4.0.41版本): ...
相关推荐
XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件以及对象序列化等领域。...对于处理大量XML数据或者频繁进行XML到Java Bean转换的项目,这样的工具是不可或缺的。
- 使用`toXML()`方法将Java Bean转换为XML字符串。 - 使用`fromXML()`方法将XML字符串转换为Java Bean。 3. **示例**: ```java import com.thoughtworks.xstream.XStream; public class XStreamDemo { ...
将XML数据转换为Java实体类(Bean)以及将实体类转换回XML是两个重要的操作,这对于数据的序列化和反序列化至关重要。下面将详细解释这两个过程以及涉及的相关知识点。 首先,XML转实体类的过程通常涉及到Java的...
标题和描述中提到的"各种转换,xml,实体bean,动态bean,map等"涉及了Java编程语言中的一些核心概念,这些概念在企业级应用开发中非常常见。下面我们将详细探讨这些知识点。 1. **XML(Extensible Markup Language)*...
测试通常会创建一个包含相同节点名的XML文件,然后将其转换为Java Bean,再将该Bean转换回XML,最后比较原始XML和新生成的XML是否一致。 总之,Betwixt提供了一种方便的方式来处理Java对象与XML之间的转换,即使在...
标题中的“java-xml自动生成对象实体以及与xml相互转化”指的是使用Java技术将XML文件转换为Java对象(即Java Bean),反之亦然。这一过程通常涉及到以下几个关键知识点: 1. **Java DOM解析器**:DOM(Document ...
Java项目实体类转换实例 在Java项目中,实体类转换是指将一个实体类对象转换为另一个实体类对象的过程。在这种情况下,我们可以使用Dozer库来实现实体类转换。Dozer是一个开源的Java类库,用于将一个Java对象转换...
在这个版本中,XStream提供了对Java Bean对象转换为XML的全面支持。 **XStream的工作原理:** XStream的核心是基于反射的,它通过分析Java对象的类结构来构建XML表示。它使用了一种称为"alias"的概念,允许我们将...
通过自动化的转换,可以保证Java类与XML结构的一致性,减少手动编码的错误。此外,这些工具也使得XML数据的处理更加模块化,提高了代码的可维护性和可扩展性。 在使用这类工具时,需要注意的是,生成的Java类可能...
XML文件和Java实体类(Bean)之间的转换是Java开发中常见的需求,特别是在处理数据持久化、Web服务或者配置文件时。下面将详细讲解这个过程,以及如何实现它们之间的相互转化。 1. XML到Java实体类的转换: 这个...
下面将详细解释XML与Bean之间的转换原理、相关API以及其实现步骤。 1. **XML到Bean的转换**: 当我们需要将XML文件解析为Java对象时,通常会使用`JAXB(Java Architecture for XML Binding)`或者`DOM(Document ...
在Java编程中,将对象转换成XML是一种常见的数据序列化方式,这有助于数据交换和存储。当遇到包含特殊字符如 "和 "&" 的文本时,XML解析器可能会产生错误,因为这些字符在XML语法中有特定含义。为了解决这个问题,...
此外,JAXB(Java Architecture for XML Binding)是另一种强大的工具,它可以将XML与Java对象直接映射,方便数据的序列化和反序列化。对于多级XML,JAXB提供了一种更加面向对象的方式来处理数据,但需要额外的配置...
Java 类与XML之间的相互转换是Java开发中常见的一项任务,特别是在处理配置文件、数据持久化或者网络通信时。XStream库提供了一种简单且高效的方式来实现这种转换,它是一个Java库,可以将Java对象序列化为XML,也...
它可以将Java对象转换为XML文档,也可以将XML文档转换为Java对象。 pom引用 <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.20 实体类和测试类详见博客 ...
本文将详细探讨如何将MySQL中的表转换为Java实体类。 1. **什么是Java实体类** Java实体类通常代表数据库中的一个表,每个属性对应表的一列,而方法则对应于对这些数据的操作。实体类是ORM(对象关系映射)框架如...
4. **对象映射(对象-XML/JSON映射)**:这是一种将数据结构(如Bean)与数据格式(如XML或JSON)之间进行转换的技术。比如,使用Jackson库的`ObjectMapper`可以方便地将JSON字符串解析成Bean,反之亦然。 5. **...
总结,XML与JavaBean之间的转换是Java开发中的常见操作,理解XML的大小写规则、特殊符号处理和CDATA的使用对于编写健壮的XML处理代码至关重要。掌握这些知识可以帮助开发者更有效地在XML和Java对象之间进行数据交换...
描述中提到的“二级Java Bean转换”是指在Excel表格中可能存在嵌套的数据结构,比如一个单元格的数据是另一个复杂对象的表示。在这种情况下,你可以创建第二个Java Bean类来表示这个复杂对象,然后在主Java Bean中...
数据库方面,EJB中的实体bean通常会与数据库表进行映射,利用JPA(Java Persistence API)或Hibernate等技术实现ORM。 总结来说,《JAVA程序设计 EJB、XML与数据库》这本书涵盖了Java开发中的关键领域,不仅讲解了...