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对象,你看到这,是不是心痒的想要上手试一试呢?

时间: 2024-10-24 09:22:46

XStream将XML转换为JAVA对象快速指南的相关文章

XStream实现xml和java对象之间的互相转换,同理JSON也可以

首先去官网下载响应JAR包 http://xstream.codehaus.org/index.html 最少需要两个jar包,一个xstream.jar,一个是xmlpull.jar 首先来看下java对象到xml的转换 package xml; class PhoneNumber { private int code; private int number; public int getCode() { return code; } public void setCode(int code)

JAXB:xml与java对象互转

JaxbContext生成xml文件或java类对象转化注解    JAXB提供了一个快速便捷的方式将Java对象与XML进行转换.在JAX-WS(Java的WebService规范之一)中,JDK1.6 自带的版本JAX-WS2.1,其底层支持就是JAXB.  JAXB 可以实现Java对象与XML的相互转换,在JAXB中,将一个Java对象转换为XML的过程称之为Marshal,将XML转换为Java对象的过程称之为UnMarshal.我们可以通过在Java 类中标注注解的方式将一个Java

xml-mapping xml 与 java 对象转换映射框架,像 XStream 一样优雅地读写xml

xml xml 是 java 实现的 xml 框架. 希望以最优雅的方式进行 xml 和 java 之间的转换处理,一行代码搞定一切. 特点 对象的和 xml 的互相映射 支持注解 @Alias 指定别名 支持注解 @Ignore 指定忽略的字段 变更日志 CHANGE_LOG 快速开始 准备 jdk 1.7+ maven 3.x+ maven 引入 <dependency> <groupId>com.github.houbb</groupId> <artifac

xml-mapping xml 与 java 对象转换映射框架,像 XStream 一样优雅地读写x

xml xml 是 java 实现的 xml 框架. 希望以最优雅的方式进行 xml 和 java 之间的转换处理,一行代码搞定一切. 特点 对象的和 xml 的互相映射 支持注解 @Alias 指定别名 支持注解 @Ignore 指定忽略的字段 变更日志 CHANGE_LOG 快速开始 准备 jdk 1.7+ maven 3.x+ maven 引入 <dependency> <groupId>com.github.houbb</groupId> <artifac

XStream 用法详解 XML 转换为 java 实体类

XStream 用法详解 java 类与 XML 互换 现在 WEB数据交换的时代,传送XML目前是一个比较流行的方式,具有统一的规则约束,为实现后台接口提供了一个很方便的实现. 我编写了一个 接收XML并转换成所需要的Object类的 小例子,希望能够对做互联网数据传输.接口调用的朋友有所帮助. 首先要导入jar包xstream-1.4.3-sources.jar 和 xmlpull-1.1.3.1.jar 两个包: 其次是预备一个 XML 事例 <config> <span styl

JAXB完成XML与Java对象的互转

这段时间都老忙了,甚至连周末所有人员都在赶产品的进度,想想连续上12天班,人都有点晕了!到这会儿终于有点时间,所以准备和大家分享一下JAXB,会不会有人觉得有点陌生呢?没事,这里跟大伙儿简单的描述一下: JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档.从另一方面来讲,JA

Java&amp;amp;Xml教程(十一)JAXB实现XML与Java对象转换

JAXB是Java Architecture for XML Binding的缩写,用于在Java类与XML之间建立映射,可以帮助开发人员非常方便的將XML和Java对象进行相互转换. 本文以一个简单的样例介绍JAXB的使用.首先我们须要了解一下JAXB经常使用的API. JAXBContext类.是应用的入口.用于管理XML/Java绑定信息. Marshaller接口.将Java对象序列化为XML数据. Unmarshaller接口,将XML数据反序列化为Java对象. @XmlType,将

JSon_零基础_007_将JSon格式的&quot;数组&quot;字符串转换为Java对象&quot;数组&quot;

将JSon格式的"数组"字符串转换为Java对象"数组". 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key)方法取得key对应的value部分(字符串). 通过getJSONObject(key)可以取得一个JSONObject对象. 通过getJSONArray(key)可以得到一个JSONArray对象. 导入需要的jar包: package com.west.

JSon_零基础_006_将JSon格式的字符串转换为Java对象

需求: 将JSon格式的字符串转换为Java对象. 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key)方法取得key对应的value部分(字符串). 通过getJSONObject(key)可以取得一个JSONObject对象. 通过getJSONArray(key)可以得到一个JSONArray对象. 需要导入的jar包: 编写po(bean)类: package com.west.webcou