把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 + "]";
- }
- }
希望对你们有帮助
把xml转成javabean的工具类的更多相关文章
- Xml格式数据转map工具类
前言[ 最近在写一个业务,由于调UPS物流的接口返回的是一个xml格式的数据结果,我现在要拿到xml中某个节点的值,而这个xml数据是多节点多层级的,并且这某个节点的值有可能只有一条值,有可能有多条, ...
- xml和map互转工具类
/** * xml转map工具类 * @author zhangyao * */ public class XmlToMapUtil { /** * xml转map 不带属性 * @param xml ...
- 使用jbc查询数据封装成对象的工具类
适用于获取Connection对象的util package com.briup.myDataSource; import java.io.FileReader; import java.io.Inp ...
- Java 实现将其他类型数据转换成 JSON 字符串工具类
这是网上一个大神实现的,具体出处已找不到,在这做个记录,方便以后使用. package com.wb.test; import java.beans.IntrospectionException; i ...
- 将JSON转换成MAP的工具类
package com.xxxx.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.Inp ...
- JaxbUtil转json转XML工具类
json转换为XML工具类 package com.cxf.value; import org.springframework.util.StringUtils; import javax.xml.b ...
- xml文档的解析并通过工具类实现java实体类的映射:XML工具-XmlUtil
若有疑问,可以联系我本人微信:Y1141100952 声明:本文章为原稿,转载必须说明 本文章地址,否则一旦发现,必追究法律责任 1:本文章显示通过 XML工具-XmlUtil工具实现解析soap报文 ...
- java自带的xml解析工具类
public class JaxbUtil { /** * java对象转换为xml文件 * * @param xmlPath xml文件路径 * @param load java对象.Class * ...
- 2015第30周三Spring常用工具类
文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...
随机推荐
- C# winfrom 通过代码 删除TableLayoutPanel控件的一行或列
tableLayoutPanel1.ColumnStyles.RemoveAt(1); tableLayoutPanel1.Controls.RemoveAt(1);
- P4492 [HAOI2018]苹果树
思路 题目要求的其实就是每种方案的权值之和(因为每种方案的概率相等) 所以自然想到要求所有的边对最终答案的贡献次数 考虑这一条边被经过了多少次,有这个子树内的点数*子树外的点数次,即\(k\times ...
- P3455 [POI2007]ZAP-Queries(莫比乌斯反演)
思路 和YY的GCD类似但是更加简单了 类似的推一波公式即可 \[ F(n)=\sum_{n|d}f(d) \] \[ f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d) \] \ ...
- AtomicReference实现单例模式
CAS是项乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试. 乐观锁的一种实 ...
- Latex: 添加IEEE会议论文作者信息
参考: Multiple Authors with common affiliations in IEEEtran conference template Latex: 添加IEEE会议论文作者信息 ...
- 批处理bat标准化获取当前系统日期的几种方法,补0
首先有两个推荐的方案. 一: for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get Loc ...
- jenkins 异常
八月 03, 2017 7:23:54 下午 org.eclipse.jetty.util.log.JavaUtilLog warn 警告: FAILED ServerConnector@29e6eb ...
- vs编译出现 fatal error LNK1281:无法生成 SAFESEH 映像
问题: 在vs编译中我们有时候常常会见到这样的错误,无法生成 SAFESEH 映像,镜像安全问题 解决方法: 1.打开该项目的"属性页"对话框. 2.单击"链接器&quo ...
- 前端开发——HTML学习笔记
HTML03
- poj 1744 tree 树分治
Tree Time Limit: 1000MS Memory Limit: 30000K Description Give a tree with n vertices,each ed ...