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

希望对你们有帮助

把xml转成javabean的工具类的更多相关文章

  1. Xml格式数据转map工具类

    前言[ 最近在写一个业务,由于调UPS物流的接口返回的是一个xml格式的数据结果,我现在要拿到xml中某个节点的值,而这个xml数据是多节点多层级的,并且这某个节点的值有可能只有一条值,有可能有多条, ...

  2. xml和map互转工具类

    /** * xml转map工具类 * @author zhangyao * */ public class XmlToMapUtil { /** * xml转map 不带属性 * @param xml ...

  3. 使用jbc查询数据封装成对象的工具类

    适用于获取Connection对象的util package com.briup.myDataSource; import java.io.FileReader; import java.io.Inp ...

  4. Java 实现将其他类型数据转换成 JSON 字符串工具类

    这是网上一个大神实现的,具体出处已找不到,在这做个记录,方便以后使用. package com.wb.test; import java.beans.IntrospectionException; i ...

  5. 将JSON转换成MAP的工具类

    package com.xxxx.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.Inp ...

  6. JaxbUtil转json转XML工具类

    json转换为XML工具类 package com.cxf.value; import org.springframework.util.StringUtils; import javax.xml.b ...

  7. xml文档的解析并通过工具类实现java实体类的映射:XML工具-XmlUtil

    若有疑问,可以联系我本人微信:Y1141100952 声明:本文章为原稿,转载必须说明 本文章地址,否则一旦发现,必追究法律责任 1:本文章显示通过 XML工具-XmlUtil工具实现解析soap报文 ...

  8. java自带的xml解析工具类

    public class JaxbUtil { /** * java对象转换为xml文件 * * @param xmlPath xml文件路径 * @param load java对象.Class * ...

  9. 2015第30周三Spring常用工具类

    文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...

随机推荐

  1. 浅谈IIS 和 asp.net的应用之间的关系

    IIS可以理解为一个web服务器. 用于提供web相关的各种服务. IIS6.0中添加了一个新的功能, application pool. application pool的作用是将运行在同一个ser ...

  2. js点击显示隐藏

    这个栗子…… 可以不吃,先预设一个变量表示div的状态,例子中0是显示的,一开始是隐藏的.当点击时判断状态是显示0的还是隐藏1的:如果是显示的就把div隐藏,再把变量改变为1.再次点击时把会判断到变量 ...

  3. Wordpress搭建

    Install Environment apt install apache2 php mysql-server apt install php-mysql php-fpm Config mysql ...

  4. Lintcode35-Reverse Linked List-Easy

    35. Reverse Linked List Reverse a linked list. Example Example1:For linked list 1->2->3, the r ...

  5. Python 全集变量

    1.添加关键字: global 在要给变量从新赋值的时候添加. 全局变量都大写,局部变量都小写.

  6. 基于 Python 和 Pandas 的数据分析(5) --- Concatenating and Appending

    这一节我们将会介绍几种不同的合并数据的方法. 在我们这个不动产投资的例子中, 我们希望获取 51 个州的房产数据, 并把它们组合起来. 我们这样做有很多原因. 这样做既便于我们做分析, 同时也可以占用 ...

  7. 转csdn某位同学的 感谢bmfont

    UGUI 使用BMFont 首先要知道 Custom Font 的原理,不知道的同学可以先看这篇[Custom Font 原理](http://blog.csdn.net/liqiangeastsun ...

  8. JS基础---Dom的基本操作

    DOM的增删改查 增: 1.创建一个元素节点 document.createElement() 创建新的<p> 元素:var para=document.createElement(&qu ...

  9. PHP里获取一维数组里的最大值和最小值

    <?php $arr = ['10','100','50','90','2','5']; $min = min($arr); $max = max($arr); echo $min.PHP_EO ...

  10. ORA-03113: end-of-file on communication channel(归档满处理方法)

    归档放在flash_recovery目录,由于归档占满了闪回目录,数据库启动报错ORA-03113: end-of-file on communication channel tail -1200f ...