把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 处理类完成这些操作,但对于一般的应用程序来 ...
随机推荐
- 题解——洛谷P2294 [HNOI2005]狡猾的商人(差分约束)
裸的差分约束 dfs判断负环,如果有负环就false,否则就是true 注意有多组数据,数组要清空 #include <cstdio> #include <algorithm> ...
- java核心问题总结
Java 核心概念 equals 与 hashCode 的异同点在哪里?Java 的集合中又是如何使用它们的. Math.Integer.Double等这些封装类在使用equals()方法时,已经覆盖 ...
- PHP 常见的数据加密技术
单项散列加密技术(不可逆的加密) 把任意长的输入字符串变化为固定长的输出串的一种函数 MD5 string md5 ( string $str [, bool $raw_output = false ...
- python测试
[链接]JointhePythonDeveloperscommunityonSlack! http://pythondevelopers.herokuapp.com/
- P4574 [CQOI2013]二进制A+B
传送门 思路: 本题可用数位DP来做,设 f [ i ][ a ][ b ][ c ][ j ] 表示当前枚举到(二进制下的)第i位,a' b' c'各用a,b,c了几个1,j表示最后一位是否有进位. ...
- c++ demo
#include "stdafx.h" #include <boost\version.hpp> #include <boost\config.hpp> # ...
- 2. maven的配置和使用
参考网址:创建maven项目 引言:关于使用idea创建maven工程,以上的这篇博客已经写的很清楚,可以完全参照,我这里就不在重复,以下只 针对上面的这个教程不足或者描述不全面的地方做补充. 目录: ...
- Mybatis的SqlSession理解(一)
SqlSession是Mybatis最重要的构建之一,可以认为Mybatis一系列的配置目的是生成类似JDBC生成的Connection对象的statement对象,这样才能与数据库开启“沟通”,通过 ...
- python web.py实现简单的get和post请求
使用web.py框架,实现简单的get和post请求: py文件名:mytest.py import web urls = ( '/', 'hello' ) app = web.application ...
- web自动化测试与Appuim自动化测试对比
web自动化测试-打开浏览器: from selenium import webdriver driver = webdriver.Chrome() #定义chrome驱动 driver.maximi ...