博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XStream将XML转换为JAVA对象快速指南
阅读量:5837 次
发布时间:2019-06-18

本文共 2937 字,大约阅读时间需要 9 分钟。

XStream是一套简单实用的JAVA类库,它用于序列化对象和XML对象之间互相转换。由于XStream配置简单,灵活易用,因此在XML对象和JAVA对象序列化市场上有很大的空间。本文并不会对XStream的特性做详细介绍,只是以实例的方式演示XStream是多么的容易上手。

1.最新版的Jar包,上传到工程路径。

2.假设我们要将如下的XML对象转换为JAVA对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
xml 
version
=
"1.0" 
encoding
=
"UTF-8"
?>
<
order
>
    
<
orderId
>201612150001</
orderId
>
    
<
orderPrice
>40.23</
orderPrice
>
    
<
createDate
>20161215180000</
createDate
>
    
<
product
>
        
<
productName
>lvrouhuoshao</
productName
>
        
<
productPrice
>23</
productPrice
>
    
</
product
>
    
<
product
>
        
<
productName
>鸡蛋灌饼</
productName
>
        
<
productPrice
>17.23</
productPrice
>
    
</
product
>
</
order
>

3.根据XML结构构建订单对象和产品对象

HiOrder.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package 
com.favccxx.favsoft.pojo;
import 
java.util.List;
public 
class 
HiOrder {
    
private 
String orderId;
    
private 
double 
orderPrice;
    
private 
List<HiProduct> product;
    
private 
String createDate;
    
public 
String getOrderId() {
        
return 
orderId;
    
}
    
public 
void 
setOrderId(String orderId) {
        
this
.orderId = orderId;
    
}
    
public 
double 
getOrderPrice() {
        
return 
orderPrice;
    
}
    
public 
void 
setOrderPrice(
double 
orderPrice) {
        
this
.orderPrice = orderPrice;
    
}
    
public 
List<HiProduct> getProduct() {
        
return 
product;
    
}
    
public 
void 
setProduct(List<HiProduct> product) {
        
this
.product = product;
    
}
    
public 
String getCreateDate() {
        
return 
createDate;
    
}
    
public 
void 
setCreateDate(String createDate) {
        
this
.createDate = createDate;
    
}
}

Product.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package 
com.favccxx.favsoft.pojo;
public 
class 
HiProduct {
    
private 
String productName;
    
private 
double 
productPrice;
    
public 
String getProductName() {
        
return 
productName;
    
}
    
public 
void 
setProductName(String productName) {
        
this
.productName = productName;
    
}
    
public 
double 
getProductPrice() {
        
return 
productPrice;
    
}
    
public 
void 
setProductPrice(
double 
productPrice) {
        
this
.productPrice = productPrice;
    
}
}

4.测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package 
com.favccxx.favsoft.main;
import 
com.favccxx.favsoft.pojo.HiOrder;
import 
com.favccxx.favsoft.pojo.HiProduct;
import 
com.thoughtworks.xstream.XStream;
public 
class 
MainOrder {
    
public 
static 
void 
main(String[] args) {
        
String xmlbody = 
"<?xml version='1.0' encoding='UTF-8'?><order><orderId>201612150001</orderId><orderPrice>40.23</orderPrice><createDate>2016-12-12 15:16:04</createDate><product><productName>lvrouhuoshao</productName><productPrice>23</productPrice></product><product><productName>鸡蛋灌饼</productName><productPrice>17.23</productPrice></product></order>"
;
        
XStream xStream = 
new 
XStream();
        
xStream.alias(
"order"
, HiOrder.
class
);
        
xStream.alias(
"product"
, HiProduct.
class
);
        
xStream.addImplicitCollection(HiOrder.
class
"product"
);
        
HiOrder order = (HiOrder) xStream.fromXML(xmlbody);
        
System.out.println(order.getOrderId());
    
}
}

5.运行上面测试类,输出订单的详细信息。只需简单的几步就可以将XML对象转换为JAVA对象,你看到这,是不是心痒的想要上手试一试呢?

本文转自 genuinecx 51CTO博客,原文链接:http://blog.51cto.com/favccxx/1884453,如需转载请自行联系原作者
你可能感兴趣的文章
采用JXL包进行EXCEL数据写入操作
查看>>
将txt文件转化为json进行操作
查看>>
我的2014-相对奢侈的生活
查看>>
Java设计模式
查看>>
华为OJ 名字美丽度
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
基本概念复习
查看>>
通过Roslyn构建自己的C#脚本(更新版)(转)
查看>>
红黑树
查看>>
【数据库】
查看>>
WindowManager.LayoutParams 详解
查看>>
Android的Aidl安装方法
查看>>
Linux中rc的含义
查看>>
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
Breaking parallel loops in .NET C# using the Stop method z
查看>>