• 把xml转成javabean的工具类


    import java.io.IOException;
    import java.io.StringReader;
    import java.io.StringWriter;
    
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    import javax.xml.bind.Unmarshaller;
    
    import com.alipayeco.medicalinscore.common.Global;
    
    public class JaxbUtil {//工具类
    
        /**
         * java对象转换为xml文件
         * @param xmlPath  xml文件路径
         * @param load    java对象.Class
         * @return    xml文件的String
         * @throws JAXBException    
         */
        public static String beanToXml(Object obj, Class<?> load) throws JAXBException {
            JAXBContext context = JAXBContext.newInstance(load);
            Marshaller marshaller = context.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
            marshaller.setProperty(Marshaller.JAXB_ENCODING, Global.ENCODING);
            StringWriter writer = new StringWriter();
            marshaller.marshal(obj, writer);
            return writer.toString();
        }
    
        /**
         * xml文件配置转换为对象
         * @param xmlPath  xml文件路径
         * @param load    java对象.Class
         * @return    java对象
         * @throws JAXBException    
         * @throws IOException
         */
        @SuppressWarnings("unchecked")
        public static <T> T xmlToBean(String xmlPath, Class<T> load) throws JAXBException, IOException {
            JAXBContext context = JAXBContext.newInstance(load);
            Unmarshaller unmarshaller = context.createUnmarshaller();
            return (T) unmarshaller.unmarshal(new StringReader(xmlPath));
        }
        
        /** 
         * JavaBean转换成xml 
         * 默认编码UTF-8 
         * @param obj 
         * @param writer 
         * @return  
         */
        public static String convertToXml(Object obj) {
            //       return convertToXml(obj, "UTF-8");  
            return convertToXml(obj, "UTF-8");
        }
    
        /** 
         * JavaBean转换成xml 
         * @param obj 
         * @param encoding  
         * @return  
         */
        public static String convertToXml(Object obj, String encoding) {
            String result = null;
            try {
                JAXBContext context = JAXBContext.newInstance(obj.getClass());
                Marshaller marshaller = context.createMarshaller();
                marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
                marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
                
                StringWriter writer = new StringWriter();
                marshaller.marshal(obj, writer);
                result = writer.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return result;
        }
        
        /** 
         * JavaBean转换成xml去除xml声明部分 
         * @param obj 
         * @param encoding  
         * @return  
         */
        public static String convertToXmlIgnoreXmlHead(Object obj, String encoding) {
            String result = null;
            try {
                JAXBContext context = JAXBContext.newInstance(obj.getClass());
                Marshaller marshaller = context.createMarshaller();
                marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
                marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
                marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
                StringWriter writer = new StringWriter();
                marshaller.marshal(obj, writer);
                result = writer.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return result;
        }
        
        
        
    
        /** 
         * xml转换成JavaBean 
         * @param xml 
         * @param c 
         * @return 
         */
        @SuppressWarnings("unchecked")
        public static <T> T converyToJavaBean(String xml, Class<T> c) {
            T t = null;
            try {
                JAXBContext context = JAXBContext.newInstance(c);
                Unmarshaller unmarshaller = context.createUnmarshaller();
                t = (T) unmarshaller.unmarshal(new StringReader(xml));
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return t;
        }
    
    }

    下面是调用方法

            outXml = "<?xml version="1.0" encoding="UTF-8"?><document><response><head><version>3.7.0</version><appid>2016012900930739</appid><function>alipay.medical.card.query</function><respTime>20180330122158</respTime><respTimeZone>UTC+8</respTimeZone><reqMsgId>78bc03b3-8c81-4ae7-a1c5-a02cfd0803a2</reqMsgId></head><body><resultInfo><resultStatus>S</resultStatus><resultCode>SUCCESS</resultCode><resultMsg>业务成功</resultMsg></resultInfo><medical_card_id>6049735182</medical_card_id><medical_card_no>B6C989166</medical_card_no><medical_card_validate_date>2038-03-30</medical_card_validate_date><medical_card_status>active</medical_card_status><medical_card_type>finance</medical_card_type><bank_card_no>6214677200012756150</bank_card_no><out_real_name>林海毅</out_real_name><out_user_card_type>01</out_user_card_type><out_user_card_no>450502198805230162</out_user_card_no><social_card_no>450502198805230162</social_card_no><extend_params>{"card_query":{"dnh":"640750316"}}</extend_params></body></response><signature>LuhjShqmZjFUHQ7SVxqELZnyUHB4EU/nWO4Or8RUJBbmSfsS+ChONxpGNCXYjGvd5Jfn8+t3ugqqKYPCGsRy3UDec63a2PllSKJCA1sOYSGfKDz0W38mSIgL/jWNXd4ryiijzQi4BQbTlHIoms6X5AhXeL30QW6dLpdvZlPHYWrjtS97n/991FJZDcb7df/UYYjZaicL+LhjUpG1WkN93PJc3RLzsHXF2u3OMAirTR7bhYx2L9bnY2VxnWiMPBcxBVB26r03bD5I5iqL8iLqmVcFqOQHt7iozUGywe71eBEV8dlgzDCswv3unCiywU8Ndvw/VOKdZXQ6OERbpGDCqA==</signature></document>";
            ResponseDocumentBO<ResponseCardQueryBodyBO> outDocumentXml = JaxbUtil.converyToJavaBean(outXml, ResponseDocumentBO.class);

    下面是javabean

    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement(name = "document")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class ResponseDocumentBO<T> {
    
        @XmlElement(name = "response")
        private ResponseBO<T> response;
    
        @XmlElement(name = "signature")
        private String signature;
    
        public ResponseBO<T> getResponse() {
            return response;
        }
    
        public void setResponse(ResponseBO<T> response) {
            this.response = response;
        }
    
        public String getSignature() {
            return signature;
        }
    
        public void setSignature(String signature) {
            this.signature = signature;
        }
    
    }
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    
    @XmlAccessorType(XmlAccessType.FIELD)
    public class ResponseCardQueryBodyBO {
    
        @XmlElement(name = "resultInfo")
        private ResultInfo resultInfo;
    
        @XmlElement(name = "medical_card_id")
        private String medicalCardId;
    
        @XmlElement(name = "medical_card_no")
        private String medicalCardNo;
    
        @XmlElement(name = "medical_card_validate_date")
        private String medicalCardValidateDate;
    
        @XmlElement(name = "medical_card_status")
        private String medicalCardStatus;
    
        @XmlElement(name = "medical_card_type")
        private String medicalCardType;
    
        @XmlElement(name = "bank_card_no")
        private String bankCardNo;
    
        @XmlElement(name = "out_user_account")
        private String outUserAccount;
    
        @XmlElement(name = "out_user_id")
        private String outUserId;
    
        @XmlElement(name = "out_real_name")
        private String outRealName;
    
        @XmlElement(name = "out_user_card_type")
        private String outUserCardType;
    
        @XmlElement(name = "out_user_card_no")
        private String outUserCardNo;
    
        @XmlElement(name = "out_user_certify_pic")
        private String outUserCertifyPic;
    
        @XmlElement(name = "social_card_no")
        private String socialCardNo;
    
        @XmlElement(name = "extend_params")
        private String extendParams;
    
        public ResultInfo getResultInfo() {
            return resultInfo;
        }
    
        public void setResultInfo(ResultInfo resultInfo) {
            this.resultInfo = resultInfo;
        }
    
        public String getMedicalCardId() {
            return medicalCardId;
        }
    
        public void setMedicalCardId(String medicalCardId) {
            this.medicalCardId = medicalCardId;
        }
    
        public String getMedicalCardNo() {
            return medicalCardNo;
        }
    
        public void setMedicalCardNo(String medicalCardNo) {
            this.medicalCardNo = medicalCardNo;
        }
    
        public String getMedicalCardValidateDate() {
            return medicalCardValidateDate;
        }
    
        public void setMedicalCardValidateDate(String medicalCardValidateDate) {
            this.medicalCardValidateDate = medicalCardValidateDate;
        }
    
        public String getMedicalCardStatus() {
            return medicalCardStatus;
        }
    
        public void setMedicalCardStatus(String medicalCardStatus) {
            this.medicalCardStatus = medicalCardStatus;
        }
    
        public String getMedicalCardType() {
            return medicalCardType;
        }
    
        public void setMedicalCardType(String medicalCardType) {
            this.medicalCardType = medicalCardType;
        }
    
        public String getBankCardNo() {
            return bankCardNo;
        }
    
        public void setBankCardNo(String bankCardNo) {
            this.bankCardNo = bankCardNo;
        }
    
        public String getOutUserAccount() {
            return outUserAccount;
        }
    
        public void setOutUserAccount(String outUserAccount) {
            this.outUserAccount = outUserAccount;
        }
    
        public String getOutUserId() {
            return outUserId;
        }
    
        public void setOutUserId(String outUserId) {
            this.outUserId = outUserId;
        }
    
        public String getOutRealName() {
            return outRealName;
        }
    
        public void setOutRealName(String outRealName) {
            this.outRealName = outRealName;
        }
    
        public String getOutUserCardType() {
            return outUserCardType;
        }
    
        public void setOutUserCardType(String outUserCardType) {
            this.outUserCardType = outUserCardType;
        }
    
        public String getOutUserCardNo() {
            return outUserCardNo;
        }
    
        public void setOutUserCardNo(String outUserCardNo) {
            this.outUserCardNo = outUserCardNo;
        }
    
        public String getOutUserCertifyPic() {
            return outUserCertifyPic;
        }
    
        public void setOutUserCertifyPic(String outUserCertifyPic) {
            this.outUserCertifyPic = outUserCertifyPic;
        }
    
        public String getSocialCardNo() {
            return socialCardNo;
        }
    
        public void setSocialCardNo(String socialCardNo) {
            this.socialCardNo = socialCardNo;
        }
    
        public String getExtendParams() {
            return extendParams;
        }
    
        public void setExtendParams(String extendParams) {
            this.extendParams = extendParams;
        }
    
        @Override
        public String toString() {
            return "ResponseCardQueryBodyBO [resultInfo=" + resultInfo + ", medicalCardId=" + medicalCardId + ", medicalCardNo=" + medicalCardNo
                    + ", medicalCardValidateDate=" + medicalCardValidateDate + ", medicalCardStatus=" + medicalCardStatus + ", medicalCardType="
                    + medicalCardType + ", bankCardNo=" + bankCardNo + ", outUserAccount=" + outUserAccount + ", outUserId=" + outUserId
                    + ", outRealName=" + outRealName + ", outUserCardType=" + outUserCardType + ", outUserCardNo=" + outUserCardNo
                    + ", outUserCertifyPic=" + outUserCertifyPic + ", socialCardNo=" + socialCardNo + ", extendParams=" + extendParams + "]";
        }
    
    }
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    
    //@XmlRootElement(name = "response")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class ResponseBO<T> {
        @XmlElement(name = "head")
        private ResponseHeadBO head;
    
        @XmlElement(name = "body")
        private ResponseCardQueryBodyBO responseCardQueryBody;
    
        public ResponseHeadBO getHead() {
            return head;
        }
    
        public void setHead(ResponseHeadBO head) {
            this.head = head;
        }
    
        public ResponseCardQueryBodyBO getResponseCardQueryBody() {
            return responseCardQueryBody;
        }
    
        public void setResponseCardQueryBody(ResponseCardQueryBodyBO responseCardQueryBody) {
            this.responseCardQueryBody = responseCardQueryBody;
        }
    
        @Override
        public String toString() {
            return "ResponseBO [head=" + head + ", responseCardQueryBody=" + responseCardQueryBody + "]";
        }
    }

    希望对你们有帮助

  • 相关阅读:
    docker/kubernetes国内源/镜像源解决方式
    logstash的filter之grok
    基于ambari搭建hadoop生态圈大数据组件
    Hadoop整体概述
    flume的配置详解
    Zabbix错误”zbx_mem_malloc(): out of memory”解决方法
    Windows环境下的RTKPlot_Qt版本编译时遇到的问题和解决方法
    基于 win7下虚拟机的 GNSS-SDR安装过程
    博客文章搬迁同步声明
    RTKLIB源码解析(一)——单点定位(pntpos.c)
  • 原文地址:https://www.cnblogs.com/zyf-yxm/p/9036615.html
Copyright © 2020-2023  润新知