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. Paper Reading: In Defense of the Triplet Loss for Person Re-Identification

    In Defense of the Triplet Loss for Person Re-Identification  2017-07-02  14:04:20   This blog comes ...

  2. Jquery Validate 相关参数

    Jquery Validate 相关参数 //定义中文消息 var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件 ...

  3. Java中String型与Date型数据的互相转换

    /** * Date类型转为指定格式的String类型 * * @param source * @param pattern * @return */ public static String Dat ...

  4. bzoj 2243: [SDOI2011]染色 线段树区间合并+树链剖分

    2243: [SDOI2011]染色 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 7925  Solved: 2975[Submit][Status ...

  5. Easyui使用心得(1)--DateGrid表格

    最近一直在用easyui这个控件,有一点心得,在这里和大家分享一下,也是对自己工作的一个小小的总结,希望可以形成一个完整的Easyui的笔记体系,可以方便更多的人 因为自己也是在摸索中前进,难免有遗漏 ...

  6. Java Object类及其equals方法

    基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超 ...

  7. STL_string.ZC

    1.转成 小写/大写 #include <algorithm>using namespace std; // 转成小写transform(_strAttrNameG.begin(), _s ...

  8. ABP捕捉异常错误代码

    在服务层或者CORE层  随便哪里都可以  创建一个捕捉异常的文件夹  里面写一个LonsidException类 继承后面的接口  然后重写继承的方法  这样在ABP项目运行阶段  无论在哪里出现异 ...

  9. python 汉字编码问题

    问题描述:我要判断的两个字符串是否相等(‘区站号’==‘区站号’),第一个值是我从txt文件导入的数据,第二个值是我自己定义的并使用decode('utf-8')得到的,如果你用print函数打印这两 ...

  10. 使用pipeline减少与redis交互次数

    1.redis_pipeline=redis_cli.pipeline() 2.redis_pipeline.setex()此语句可写多条 3.redis_pipeline.execute() # # ...