XStream是一套簡單實用的JAVA類庫,它用於序列化對象和XML對象之間互相轉換。由於XStream配置簡單,靈活易用,因此在XML對象和JAVA對象序列化市場上有很大的空間。本文並不會對XStream的特性做詳細介紹,只是以實例的方式演示XStream是多麼的容易上手。
1.XStream官網下載最新版的Jar包,上傳到工程路徑。
2.假設我們要將如下的XML對象轉換爲JAVA對象。
<?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
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
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.測試代碼
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對象,你看到這,是不是心癢的想要上手試一試呢?