1. import java.io.IOException;
  2. import java.io.StringReader;
  3. import java.io.StringWriter;
  4.  
  5. import javax.xml.bind.JAXBContext;
  6. import javax.xml.bind.JAXBException;
  7. import javax.xml.bind.Marshaller;
  8. import javax.xml.bind.Unmarshaller;
  9.  
  10. import com.alipayeco.medicalinscore.common.Global;
  11.  
  12. public class JaxbUtil {//工具类
  13.  
  14. /**
  15. * java对象转换为xml文件
  16. * @param xmlPath xml文件路径
  17. * @param load java对象.Class
  18. * @return xml文件的String
  19. * @throws JAXBException
  20. */
  21. public static String beanToXml(Object obj, Class<?> load) throws JAXBException {
  22. JAXBContext context = JAXBContext.newInstance(load);
  23. Marshaller marshaller = context.createMarshaller();
  24. marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
  25. marshaller.setProperty(Marshaller.JAXB_ENCODING, Global.ENCODING);
  26. StringWriter writer = new StringWriter();
  27. marshaller.marshal(obj, writer);
  28. return writer.toString();
  29. }
  30.  
  31. /**
  32. * xml文件配置转换为对象
  33. * @param xmlPath xml文件路径
  34. * @param load java对象.Class
  35. * @return java对象
  36. * @throws JAXBException
  37. * @throws IOException
  38. */
  39. @SuppressWarnings("unchecked")
  40. public static <T> T xmlToBean(String xmlPath, Class<T> load) throws JAXBException, IOException {
  41. JAXBContext context = JAXBContext.newInstance(load);
  42. Unmarshaller unmarshaller = context.createUnmarshaller();
  43. return (T) unmarshaller.unmarshal(new StringReader(xmlPath));
  44. }
  45.  
  46. /**
  47. * JavaBean转换成xml
  48. * 默认编码UTF-8
  49. * @param obj
  50. * @param writer
  51. * @return
  52. */
  53. public static String convertToXml(Object obj) {
  54. // return convertToXml(obj, "UTF-8");
  55. return convertToXml(obj, "UTF-8");
  56. }
  57.  
  58. /**
  59. * JavaBean转换成xml
  60. * @param obj
  61. * @param encoding
  62. * @return
  63. */
  64. public static String convertToXml(Object obj, String encoding) {
  65. String result = null;
  66. try {
  67. JAXBContext context = JAXBContext.newInstance(obj.getClass());
  68. Marshaller marshaller = context.createMarshaller();
  69. marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
  70. marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
  71.  
  72. StringWriter writer = new StringWriter();
  73. marshaller.marshal(obj, writer);
  74. result = writer.toString();
  75. } catch (Exception e) {
  76. e.printStackTrace();
  77. }
  78.  
  79. return result;
  80. }
  81.  
  82. /**
  83. * JavaBean转换成xml去除xml声明部分
  84. * @param obj
  85. * @param encoding
  86. * @return
  87. */
  88. public static String convertToXmlIgnoreXmlHead(Object obj, String encoding) {
  89. String result = null;
  90. try {
  91. JAXBContext context = JAXBContext.newInstance(obj.getClass());
  92. Marshaller marshaller = context.createMarshaller();
  93. marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
  94. marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
  95. marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
  96. StringWriter writer = new StringWriter();
  97. marshaller.marshal(obj, writer);
  98. result = writer.toString();
  99. } catch (Exception e) {
  100. e.printStackTrace();
  101. }
  102.  
  103. return result;
  104. }
  105.  
  106. /**
  107. * xml转换成JavaBean
  108. * @param xml
  109. * @param c
  110. * @return
  111. */
  112. @SuppressWarnings("unchecked")
  113. public static <T> T converyToJavaBean(String xml, Class<T> c) {
  114. T t = null;
  115. try {
  116. JAXBContext context = JAXBContext.newInstance(c);
  117. Unmarshaller unmarshaller = context.createUnmarshaller();
  118. t = (T) unmarshaller.unmarshal(new StringReader(xml));
  119. } catch (Exception e) {
  120. e.printStackTrace();
  121. }
  122.  
  123. return t;
  124. }
  125.  
  126. }

下面是调用方法

  1. 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>";
  2. ResponseDocumentBO<ResponseCardQueryBodyBO> outDocumentXml = JaxbUtil.converyToJavaBean(outXml, ResponseDocumentBO.class);

下面是javabean

  1. import javax.xml.bind.annotation.XmlAccessType;
  2. import javax.xml.bind.annotation.XmlAccessorType;
  3. import javax.xml.bind.annotation.XmlElement;
  4. import javax.xml.bind.annotation.XmlRootElement;
  5.  
  6. @XmlRootElement(name = "document")
  7. @XmlAccessorType(XmlAccessType.FIELD)
  8. public class ResponseDocumentBO<T> {
  9.  
  10. @XmlElement(name = "response")
  11. private ResponseBO<T> response;
  12.  
  13. @XmlElement(name = "signature")
  14. private String signature;
  15.  
  16. public ResponseBO<T> getResponse() {
  17. return response;
  18. }
  19.  
  20. public void setResponse(ResponseBO<T> response) {
  21. this.response = response;
  22. }
  23.  
  24. public String getSignature() {
  25. return signature;
  26. }
  27.  
  28. public void setSignature(String signature) {
  29. this.signature = signature;
  30. }
  31.  
  32. }
  1. import javax.xml.bind.annotation.XmlAccessType;
  2. import javax.xml.bind.annotation.XmlAccessorType;
  3. import javax.xml.bind.annotation.XmlElement;
  4.  
  5. @XmlAccessorType(XmlAccessType.FIELD)
  6. public class ResponseCardQueryBodyBO {
  7.  
  8. @XmlElement(name = "resultInfo")
  9. private ResultInfo resultInfo;
  10.  
  11. @XmlElement(name = "medical_card_id")
  12. private String medicalCardId;
  13.  
  14. @XmlElement(name = "medical_card_no")
  15. private String medicalCardNo;
  16.  
  17. @XmlElement(name = "medical_card_validate_date")
  18. private String medicalCardValidateDate;
  19.  
  20. @XmlElement(name = "medical_card_status")
  21. private String medicalCardStatus;
  22.  
  23. @XmlElement(name = "medical_card_type")
  24. private String medicalCardType;
  25.  
  26. @XmlElement(name = "bank_card_no")
  27. private String bankCardNo;
  28.  
  29. @XmlElement(name = "out_user_account")
  30. private String outUserAccount;
  31.  
  32. @XmlElement(name = "out_user_id")
  33. private String outUserId;
  34.  
  35. @XmlElement(name = "out_real_name")
  36. private String outRealName;
  37.  
  38. @XmlElement(name = "out_user_card_type")
  39. private String outUserCardType;
  40.  
  41. @XmlElement(name = "out_user_card_no")
  42. private String outUserCardNo;
  43.  
  44. @XmlElement(name = "out_user_certify_pic")
  45. private String outUserCertifyPic;
  46.  
  47. @XmlElement(name = "social_card_no")
  48. private String socialCardNo;
  49.  
  50. @XmlElement(name = "extend_params")
  51. private String extendParams;
  52.  
  53. public ResultInfo getResultInfo() {
  54. return resultInfo;
  55. }
  56.  
  57. public void setResultInfo(ResultInfo resultInfo) {
  58. this.resultInfo = resultInfo;
  59. }
  60.  
  61. public String getMedicalCardId() {
  62. return medicalCardId;
  63. }
  64.  
  65. public void setMedicalCardId(String medicalCardId) {
  66. this.medicalCardId = medicalCardId;
  67. }
  68.  
  69. public String getMedicalCardNo() {
  70. return medicalCardNo;
  71. }
  72.  
  73. public void setMedicalCardNo(String medicalCardNo) {
  74. this.medicalCardNo = medicalCardNo;
  75. }
  76.  
  77. public String getMedicalCardValidateDate() {
  78. return medicalCardValidateDate;
  79. }
  80.  
  81. public void setMedicalCardValidateDate(String medicalCardValidateDate) {
  82. this.medicalCardValidateDate = medicalCardValidateDate;
  83. }
  84.  
  85. public String getMedicalCardStatus() {
  86. return medicalCardStatus;
  87. }
  88.  
  89. public void setMedicalCardStatus(String medicalCardStatus) {
  90. this.medicalCardStatus = medicalCardStatus;
  91. }
  92.  
  93. public String getMedicalCardType() {
  94. return medicalCardType;
  95. }
  96.  
  97. public void setMedicalCardType(String medicalCardType) {
  98. this.medicalCardType = medicalCardType;
  99. }
  100.  
  101. public String getBankCardNo() {
  102. return bankCardNo;
  103. }
  104.  
  105. public void setBankCardNo(String bankCardNo) {
  106. this.bankCardNo = bankCardNo;
  107. }
  108.  
  109. public String getOutUserAccount() {
  110. return outUserAccount;
  111. }
  112.  
  113. public void setOutUserAccount(String outUserAccount) {
  114. this.outUserAccount = outUserAccount;
  115. }
  116.  
  117. public String getOutUserId() {
  118. return outUserId;
  119. }
  120.  
  121. public void setOutUserId(String outUserId) {
  122. this.outUserId = outUserId;
  123. }
  124.  
  125. public String getOutRealName() {
  126. return outRealName;
  127. }
  128.  
  129. public void setOutRealName(String outRealName) {
  130. this.outRealName = outRealName;
  131. }
  132.  
  133. public String getOutUserCardType() {
  134. return outUserCardType;
  135. }
  136.  
  137. public void setOutUserCardType(String outUserCardType) {
  138. this.outUserCardType = outUserCardType;
  139. }
  140.  
  141. public String getOutUserCardNo() {
  142. return outUserCardNo;
  143. }
  144.  
  145. public void setOutUserCardNo(String outUserCardNo) {
  146. this.outUserCardNo = outUserCardNo;
  147. }
  148.  
  149. public String getOutUserCertifyPic() {
  150. return outUserCertifyPic;
  151. }
  152.  
  153. public void setOutUserCertifyPic(String outUserCertifyPic) {
  154. this.outUserCertifyPic = outUserCertifyPic;
  155. }
  156.  
  157. public String getSocialCardNo() {
  158. return socialCardNo;
  159. }
  160.  
  161. public void setSocialCardNo(String socialCardNo) {
  162. this.socialCardNo = socialCardNo;
  163. }
  164.  
  165. public String getExtendParams() {
  166. return extendParams;
  167. }
  168.  
  169. public void setExtendParams(String extendParams) {
  170. this.extendParams = extendParams;
  171. }
  172.  
  173. @Override
  174. public String toString() {
  175. return "ResponseCardQueryBodyBO [resultInfo=" + resultInfo + ", medicalCardId=" + medicalCardId + ", medicalCardNo=" + medicalCardNo
  176. + ", medicalCardValidateDate=" + medicalCardValidateDate + ", medicalCardStatus=" + medicalCardStatus + ", medicalCardType="
  177. + medicalCardType + ", bankCardNo=" + bankCardNo + ", outUserAccount=" + outUserAccount + ", outUserId=" + outUserId
  178. + ", outRealName=" + outRealName + ", outUserCardType=" + outUserCardType + ", outUserCardNo=" + outUserCardNo
  179. + ", outUserCertifyPic=" + outUserCertifyPic + ", socialCardNo=" + socialCardNo + ", extendParams=" + extendParams + "]";
  180. }
  181.  
  182. }
  1. import javax.xml.bind.annotation.XmlAccessType;
  2. import javax.xml.bind.annotation.XmlAccessorType;
  3. import javax.xml.bind.annotation.XmlElement;
  4.  
  5. //@XmlRootElement(name = "response")
  6. @XmlAccessorType(XmlAccessType.FIELD)
  7. public class ResponseBO<T> {
  8. @XmlElement(name = "head")
  9. private ResponseHeadBO head;
  10.  
  11. @XmlElement(name = "body")
  12. private ResponseCardQueryBodyBO responseCardQueryBody;
  13.  
  14. public ResponseHeadBO getHead() {
  15. return head;
  16. }
  17.  
  18. public void setHead(ResponseHeadBO head) {
  19. this.head = head;
  20. }
  21.  
  22. public ResponseCardQueryBodyBO getResponseCardQueryBody() {
  23. return responseCardQueryBody;
  24. }
  25.  
  26. public void setResponseCardQueryBody(ResponseCardQueryBodyBO responseCardQueryBody) {
  27. this.responseCardQueryBody = responseCardQueryBody;
  28. }
  29.  
  30. @Override
  31. public String toString() {
  32. return "ResponseBO [head=" + head + ", responseCardQueryBody=" + responseCardQueryBody + "]";
  33. }
  34. }

希望对你们有帮助

把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. C# winfrom 通过代码 删除TableLayoutPanel控件的一行或列

    tableLayoutPanel1.ColumnStyles.RemoveAt(1);                tableLayoutPanel1.Controls.RemoveAt(1);

  2. P4492 [HAOI2018]苹果树

    思路 题目要求的其实就是每种方案的权值之和(因为每种方案的概率相等) 所以自然想到要求所有的边对最终答案的贡献次数 考虑这一条边被经过了多少次,有这个子树内的点数*子树外的点数次,即\(k\times ...

  3. P3455 [POI2007]ZAP-Queries(莫比乌斯反演)

    思路 和YY的GCD类似但是更加简单了 类似的推一波公式即可 \[ F(n)=\sum_{n|d}f(d) \] \[ f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d) \] \ ...

  4. AtomicReference实现单例模式

    CAS是项乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试. 乐观锁的一种实 ...

  5. Latex: 添加IEEE会议论文作者信息

    参考: Multiple Authors with common affiliations in IEEEtran conference template Latex: 添加IEEE会议论文作者信息 ...

  6. 批处理bat标准化获取当前系统日期的几种方法,补0

    首先有两个推荐的方案. 一: for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get Loc ...

  7. jenkins 异常

    八月 03, 2017 7:23:54 下午 org.eclipse.jetty.util.log.JavaUtilLog warn 警告: FAILED ServerConnector@29e6eb ...

  8. vs编译出现 fatal error LNK1281:无法生成 SAFESEH 映像

    问题: 在vs编译中我们有时候常常会见到这样的错误,无法生成 SAFESEH 映像,镜像安全问题 解决方法: 1.打开该项目的"属性页"对话框. 2.单击"链接器&quo ...

  9. 前端开发——HTML学习笔记

    HTML03

  10. poj 1744 tree 树分治

    Tree Time Limit: 1000MS   Memory Limit: 30000K       Description Give a tree with n vertices,each ed ...