zoukankan      html  css  js  c++  java
  • 简单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消息的交互

  • 相关阅读:
    unistd.h文件
    error C3861: “getpid”: 找不到标识符
    #include <unistd.h> 的作用
    VS2013 配置pthread
    VS2008和VC6.0下使用pthread.h头文件
    文件下载之断点续传(客户端与服务端的实现)
    C++ 判断进程是否存在
    C/C++遍历进程和进程ID的小工具
    linux --> 文件系统十问
    网络通信 --> CRC校验
  • 原文地址:https://www.cnblogs.com/fengzhanfei/p/6139508.html
Copyright © 2011-2022 走看看