把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 处理类完成这些操作,但对于一般的应用程序来 ...
随机推荐
- 记一次oracle创建一个新数据库,并导入正式环境数据库备份的dmp包过程
背景:正式环境oracle数据库定时用exp备份一个dmp包,现在打算在一台机器上创建一个新数据库,并导入这个dmp包. 1.创建数据库 开始 -> 所有程序 -> Oracle -> ...
- 论文笔记:Diffusion-Convolutional Neural Networks (传播-卷积神经网络)
Diffusion-Convolutional Neural Networks (传播-卷积神经网络)2018-04-09 21:59:02 1. Abstract: 我们提出传播-卷积神经网络(DC ...
- No mapping found for HTTP request with URI [/Portal/download] in DispatcherServlet with name 'springmvc'
本文为博主原创,未经允许不得转载: 遇到这个异常,总结一下这个问题发生的原因: 这个原因是在springmvc中在DispatcherServlet分发请求时,解析不到相应的请求路径.后台要请求的路径 ...
- [Err] 1449 - The user specified as a definer ('rybhe'@'%') does not exist
转载: 最近在做一个项目,由于服务器切换,所以需要将原有服务器的mysql数据表以及存储过程导入到另一个服务器的mysql数据库中.导入完成之后以为一切是那么的简单,却没有想到总还是出现了一些莫名其妙 ...
- CSS深入
块元素:div.h1.p等等. 列表的样式: /*使用系统提供的一些样式:例如无序.有序都可以使用circle*/ ul{ list-style-type: circle; } ol{ list-st ...
- 解决:springmvc中接收date数据问题
这里提供三种解决方案. 一.局部转换 :只是对当前Controller类有效 springMVC.xml中添加: <bean class="org.springframework.we ...
- Intellij Idea修改css文件即时更新生成效果
用来Idea也有一段时间了,觉得还是有很多地方没有用到,今天遇到了一个问题,百度了解决方法,正好在这里做一个小记录 主要问题是我在idea的项目里面修改了css文件,然后运行web文件,发现并没有做到 ...
- node.js中的http.response.end方法使用说明
转载自:http://m.jb51.net/article/58468.htm 本文介绍了http.response.end的方法说明.语法.接收参数.使用实例和实现源码,需要的朋友可以参考下 方法说 ...
- CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
转载自:http://blog.csdn.net/u014175572/article/details/51535768 CSS3的transform:scale()可以实现按比例放大或者缩小功能. ...
- 修改记录-优化后(springboot+shiro+session+redis+ngnix共享)
1.普通用户实现redis共享session 1.配置 #cache指定缓存类型 spring.cache.type=REDIS #data-redis spring.redis.database=1 ...