IDEA在线注册码地址

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 + "]";
    }
}

希望对你们有帮助

猜你喜欢

转载自www.cnblogs.com/zyf-yxm/p/9036615.html
今日推荐