package com.sinoservices.bms.bbl.rest.bean;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; @XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ZwbShGetCustomerCaResponse")
public class BmCurrentBillResponseBean { @XmlElement(name = "Accountbillheader")
private BmCurrentBillHeaderList bmCurrentBillHeaderList;
@XmlElement(name = "ReturnMassage")
private String returnMassage;
@XmlElement(name = "ReturnStatus")
private String returnStatus; public BmCurrentBillHeaderList getBmCurrentBillHeaderList() {
return bmCurrentBillHeaderList;
}
public void setBmCurrentBillHeaderList(BmCurrentBillHeaderList bmCurrentBillHeaderList) {
this.bmCurrentBillHeaderList = bmCurrentBillHeaderList;
}
public String getReturnMassage() {
return returnMassage;
}
public void setReturnMassage(String returnMassage) {
this.returnMassage = returnMassage;
}
public String getReturnStatus() {
return returnStatus;
}
public void setReturnStatus(String returnStatus) {
this.returnStatus = returnStatus;
}
}
package com.sinoservices.bms.bch.common.util;

import java.lang.reflect.Field;
import java.util.Date; import javax.xml.bind.Marshaller.Listener; public class MarshallerListener extends Listener {
public static final String BLANK_CHAR = ""; @Override
public void beforeMarshal(Object source) {
super.beforeMarshal(source);
Field[] fields = source.getClass().getDeclaredFields();
for (Field f : fields) {
f.setAccessible(true);
// 获取字段上注解<pre name="code" class="java">
try {
if (f.getType() == String.class && f.get(source) == null) {
f.set(source, BLANK_CHAR);
} else if (f.getType() == Date.class && f.get(source) == null) {
f.set(source, new Date());
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}

 package com.sinoservices.bms.bch.common.util;

 import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.StringReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern; import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller; import org.apache.log4j.Logger; /**
*
* @Description XML工具类
* @author Lynch.Feng
* @Date 2018年11月30日 下午4:10:50
* @version 1.0.0
*/
public class XmlUtil {
private static final Logger LOGGER = Logger.getLogger(XmlUtil.class); /**
* Description:把java类解析成XML字符串
*
* @param object java类
* @param encoding XML编码
* @return
*/
public static String getXmlWithoutHeader(Object object) {
try {
JAXBContext context = JAXBContext.newInstance(object.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setListener(new MarshallerListener());
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");// 编码格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);// 是否省略xml头信息
ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
marshaller.marshal(object, dataStream);
return dataStream.toString("UTF-8");// "GBK"
} catch (Exception e) {
LOGGER.error("XML转换失败", e);
e.printStackTrace();
return "XML转换失败";
}
} /**
* Description:把java类解析成XML字符串
*
* @param object java类
* @param encoding XML编码
* @return
*/
public static String getXmlFromObject(Object object, String encoding) {
try {
JAXBContext context = JAXBContext.newInstance(object.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setListener(new MarshallerListener());
marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);// 编码格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);// 是否格式化生成的xml串
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);// 是否省略xml头信息
ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
marshaller.marshal(object, dataStream);
return dataStream.toString(encoding);// "GBK"
} catch (Exception e) {
LOGGER.error("XML转换失败", e);
return "XML转换失败";
}
} /**
* Description:把java类解析成XML字符串
*
* @param clazz java类
* @param xml XML字符串
* @return
*/
public static Object getObjectFromXml(Class<?> clazz, String xml) {
try {
JAXBContext context = JAXBContext.newInstance(clazz);
Unmarshaller unMarshaller = context.createUnmarshaller();
return unMarshaller.unmarshal(new StringReader(xml));
} catch (Exception e) {
LOGGER.error("XML转换失败", e);
return null;
}
} /**
*
* @Description SAP 返回结果转换为对象
* @param clazz
* @param xml
* @param field
* @return
*/
public static Object getSAPObject(Class<?> clazz, String xml, String field) {
String rgex = String.format("<%s>(.*?)</%s>", field, field);
try {
JAXBContext context = JAXBContext.newInstance(clazz);
Unmarshaller unMarshaller = context.createUnmarshaller();
Pattern pattern = Pattern.compile(rgex);
Matcher m = pattern.matcher(xml.replaceAll("(n0:)|(\\s?xmlns:n0)[^>]*|\r\n", ""));
while (m.find()) {
xml = String.format("<%s>%s</%s>", field, m.group(1), field);
}
return unMarshaller.unmarshal(new StringReader(xml));
} catch (Exception e) {
LOGGER.error("XML转换失败", e);
return null;
}
} /**
* 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));
} /**
* 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;
} }

将bean转换成XML字符串的更多相关文章

  1. Java对象转换成xml对象和Java对象转换成JSON对象

    1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...

  2. C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串

    在工作中,如果需要跟XML打交道,难免会遇到需要把一个类型集合转换成XML格式的情况.之前的方法比较笨拙,需要给不同的类型,各自写一个转换的函数.但是后来接触反射后,就知道可以利用反射去读取一个类型的 ...

  3. android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  4. Java将其他数据格式转换成json字符串格式

    package com.wangbo.util; import java.beans.IntrospectionException; import java.beans.Introspector; i ...

  5. json 字符串转换成对象,对象转换成json字符串

    json   字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法:   [注意jquery版本问题] var str = '{"name":&qu ...

  6. js如何将选中图片文件转换成Base64字符串?

    如何将input type="file"选中的文件转换成Base64的字符串呢? 1.首先了解一下为什么要把图片文件转换成Base64的字符串 在常规的web开发过程中,大部分上传 ...

  7. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  8. 将bean转换成键值列表

    日常开发中在进行接口对接的数据传输时,有一种场景是将bean转成jsonString,这里可以将bean转换成Map再转成jsonString. 工具类如下: public static String ...

  9. DataTable转换成json字符串

    将DataTable里面的行转换成json字符串方法: #region DataTable转为json /// <summary> /// DataTable转为json /// < ...

随机推荐

  1. [解决]RESTEASY003215: could not find writer for content-type text/html type: java.lang.String

    一.问题描述 1)项目一开始采用JAX-RS 2.1+Jersey 2.26调用REST服务能正常调用并获得正确响应: 2)当项目引入dubbo 2.6.2后也用到rest而dubbo要用到RESTE ...

  2. Python实现多线程调用GDAL执行正射校正

    python实现多线程参考http://www.runoob.com/python/python-multithreading.html #!/usr/bin/env python # coding: ...

  3. 菜鸟教程之学习Shell script笔记(下)

    菜鸟教程Shell script学习笔记(下) 以下内容是学习菜鸟教程之shell教程,所整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-sh ...

  4. centos7配置网易yum源

    部分参考centos6: https://blog.csdn.net/jinzhencs/article/details/53673999 下载yum:  https://www.cnblogs.co ...

  5. day319 1、正则表达式的定义及使用 2、Date类的用法 3、Calendar类的用法

    1.正则表达式的定义及使用2.Date类的用法3.Calendar类的用法 一.正则表达式 ###01正则表达式的概念和作用* A: 正则表达式的概念和作用* a: 正则表达式的概述* 正则表达式也是 ...

  6. easyUI 学习

    )省份-城市-区域三级联动[struts2 + ajax +非数据库版] (1)省份-城市-区域,基于jQuery的AJAX三级联动,用Struts2整合AJAX[非数据库版] $.ajax( { t ...

  7. thinkphp51初始化方法initialize

    此方法是在所有方法之前被调用的. class Index extends Controller { public function _initialize() { echo 'init<br/& ...

  8. RocketMQ入门(生产者)_2

    从 RocketMQ环境搭建_1 我们已经建立了MQ的Server,接下来就是简单的生产和消费的过程. 1. rocketMQ的源码中有个示例代码example  ,我们从Apache官网中可以下载源 ...

  9. css中有三个显示和隐藏的单词比较常见,display visibility 和 overflow我们需要区分开来

    display display 设置或检索对象是否及如何显示 display: none 隐藏对象与它相反的是display:block 除了转换为块级元素之外,同时还有显示元素的意思 特点: 隐藏之 ...

  10. vue中less文件全局引用

    1.先安装sass-resources-loader   npm install sass-resources-loader 2.然后在build->utils.js修改less配置 在less ...