简单Java类与XML之间的转换

Posted 逆流的鱼_飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单Java类与XML之间的转换相关的知识,希望对你有一定的参考价值。

  

需要的jar包:xmlpull_1_0_5.jar,xstream-1.4.1.jar)

  1、工具类XstreamUtil

  package com.learn.util;

 import com.thoughtworks.xstream.XStream;

 import com.thoughtworks.xstream.io.xml.DomDriver;

  /**

   *

   * @ClassName: XstreamUtil.java

   * @Description:

   * @author: fengzf fengzf@gstarcad.com

   * @Date: 2016126

   *

   */

  publicclass XstreamUtil {

     /**

      * bean转换为xml

      * @param obj  转换的bean

      *@return bean转换为xml

      */

     publicstatic String objectToXml(Object obj) {

        XStream xStream = new XStream();

        // xstream使用注解转换

        xStream.processAnnotations(obj.getClass());

        returnxStream.toXML(obj);

     }

     /**

      * xml转换为bean

      * @param<T>     泛型

      * @param xml       要转换为beanxml

      * @param cls   bean对应的Class

      * @return xml转换为bean

      */

     publicstatic <T> T xmlToObject(String xml, Class<T> cls) {

        XStream xstream = new XStream(new DomDriver());

        // xstream使用注解转换

        xstream.processAnnotations(cls);

        return (T) xstream.fromXML(xml);

     }

  }

 2、Java普通实体类转xml

           实体类Message.java代码

  package com.learn.entity;

  import com.thoughtworks.xstream.annotations.XStreamAlias;

 

  @XStreamAlias("Response")

  publicclass Message {

 

     @XStreamAlias("returncode")

     private String returnCode;

 

     @XStreamAlias("returnmessage")

     private String returnMessage;

 

     @XStreamAlias("status")

    privateintstatus;

 

     @XStreamAlias("time")

     private String reqTime;

 

     public String getReturnCode() {

        returnreturnCode;

     }

 

     publicvoid setReturnCode(String returnCode) {

        this.returnCode = returnCode;

     }

     public String getReturnMessage() {

        returnreturnMessage;

    }

     publicvoid setReturnMessage(String returnMessage) {

        this.returnMessage = returnMessage;

     }

     publicint getStatus() {

        returnstatus;

     }

     publicvoid setStatus(intstatus) {

        this.status = status;

     }

     public String getReqTime() {

        returnreqTime;

     }

     publicvoid setReqTime(String reqTime) {

        this.reqTime = reqTime;

      }

   }  

 

3、XML字符串转实体

@XStreamAlias使用

一、 特点:

简化的API; 
无映射文件; 
高性能,低内存占用; 
整洁的XML; 
不需要修改对象;支持内部私有字段,不需要setter/getter方法 
提供序列化接口; 
自定义转换类型策略; 

二、 使用场景

Transport转换 
Persistence 持久化对象 
Configuration 配置 
Unit Tests 单元测试

Interface服务之间XML消息的交互

以上是关于简单Java类与XML之间的转换的主要内容,如果未能解决你的问题,请参考以下文章

从零开始的Java开发1-5-2 包装类与基本数据类型常用API基本数据类型与包装类字符串之间的转换包装类的初始值与比较对象常量池

Java进阶包装类

java中类与类之间的关系讲解

java基础知识总结--类与对象

java--类与类之间的关系

JAXB实现java对象与xml之间转换