下文是在csdn上找到的文章,很方便实用:http://blog.csdn.net/zhouxianli/article/details/2962415
在使用WebService时,可以传递复杂的对象,如本例中的Policy,但是WebService的实现经常有问题,为了规避这个问题,我们可以采用传一个XML串的方式变通实现。其中最主要的问题,Java对象和XML之间的转换通过XStream可以很好地解决。
XStream是一个开源项目,一套简单实用的类库,用于序列化对象与XML对象之间的相互转换。将XML文件内容解析为一个对象或将一个对象序列化为XML文件。XStream可以用于JDK1.3以上的版本使用。
其使用方式非常简单,下面给出一个例子:
- package cn.com.sinosoft.test;
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.List;
- import com.thoughtworks.xstream.XStream;
- public class XStreamTest {
- public static void main(String[] args) {
- Policy policy = createTestPolicy();
- XStream xstream = new XStream( );
- //xstream.alias("policy", Policy.class);
- //xstream.alias("item", Item.class);
- String xml = xstream.toXML(policy);
- System.out.println(xml);
- Policy newPolicy = (Policy)xstream.fromXML(xml);
- System.out.println(xstream.toXML(newPolicy));
- }
- private static Policy createTestPolicy(){
- Policy policy = new Policy();
- policy.setPolicyNo("测试保单号");
- List items = new ArrayList();
- policy.setItems(items);
- Item item = new Item();
- item.setItemCode("001");
- item.setItemCode("基本信息");
- items.add(item);
- item = new Item();
- item.setItemCode("002");
- item.setItemCode("扩展信息");
- items.add(item);
- return policy;
- }
- }
- class Policy implements Serializable{
- private static final long serialVersionUID = 1L;
- private String policyNo;
- private List items;
- public String getPolicyNo() {
- return policyNo;
- }
- public void setPolicyNo(String policyNo) {
- this.policyNo = policyNo;
- }
- public List getItems() {
- return items;
- }
- public void setItems(List items) {
- this.items = items;
- }
- }
- class Item implements Serializable{
- private static final long serialVersionUID = 1L;
- private String itemCode;
- private String itemName;
- public String getItemCode() {
- return itemCode;
- }
- public void setItemCode(String itemCode) {
- this.itemCode = itemCode;
- }
- public String getItemName() {
- return itemName;
- }
- public void setItemName(String itemName) {
- this.itemName = itemName;
- }
- }
其中,实例化时需要xstream-1.3.1.jar 和xpp3_min-1.1.3.4.0.jar在classpath中。XPP3是一个非常快的XML拉式转换器工具。如果你不想包含这个依赖,你可以使用标准的JAXP DOM转换器来代替。
:这个类的简单设计是为了实现通用操作的。为了实现更复杂的操作你可以选择自己创建出不同方式。
为了使用XStream来更精简的输出XML,你可以为自定义的类创建别名到XML的元素名的映射。这是使用XStream唯一需要的映射的,甚至这个都是可选的。
- xstream.alias("policy", Policy.class);
相关推荐
JAXB工具类 xml转为java对象 java对象转为xml ,本人亲测,可以使用!!!
本代码主要是Java对象和Xml之间的转换实例代码,如果想具体指导代码是如何搭建的,可以参照http://blog.csdn.net/songdeitao/article/details/17304395这篇博文,这里的代码是和此对应的。
本示例程序提供从XML到java对象的转换方法,同时也提供一种从java对象到XML的转换方法
这个是 对于要把数据库获得的 list 转换成 xml 有了XStream在Java对象和XML之间相互转换 就变得非常容易了 嘿嘿
xml报文和java对象互相转换 相关jar包和测试代码,可以与castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具1.2(https://download.csdn.net/download/kemoing/10864595)完美配合使用
里面是xml转换成为java对象的两种方法,
Java对象和XML相互转换的工具类封装
Xstream_java对象和xml的互相转换
java对象与xml间的转换.docx
xml文件自动转成java对象工具,生成xsd文件,xsd转java
在java.beans包中,有两个好东西,XMLEncoder和XMLDecoder。从XML存取对象真是太费力气啦。做了小工具类,以后可以用用了。本文介绍了这两个可以把JAVA对象序列化保存为XML文件的工具类。
XML 元素中,"和 "&" 是非法的。"会产生错误,因为解析器会把该字符解释为新元素的开始。"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。CDATA:在标记CDATA下,所有的标记、实体引用都被忽略,而被XML...
Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/R映射功能。它主要API和数据接口为:JDO-like, SQL, OQL, JDBC, LDAP, XML, DSML。...它可以在Java对象、XML文本、SQL数据表以及LDAP目录之间绑定。
将一个java对象转换为xml文件,或者将一个xml文件转换为一个java对象。 (有人说需要jaxws-api-2.0.jar这个包,但是我做这个例子时没有用的,不过我还是把它附上,备用)
xStream可以轻易的将Java对象和xml文档相互转换,本实例详细介绍了运用xStream将对象转xml和xml转对象操作.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
NULL 博文链接:https://xiongpan0807.iteye.com/blog/1832124
java对象与xml间的转换[参考].pdf
这是一个很不错的json转换xml格式的资料
JAXBContext测试Java对象与xml的相互转换Demo