XStream將XML轉換爲JAVA對象快速指南

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對象,你看到這,是不是心癢的想要上手試一試呢?



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章