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. 【C语言基础】什么是数据类型?

    基本数据类型 整数 整型 — — int     ---- 4 字节 短整型 — — short  int     ---- 2 字节 长整型 — — long  int     ---- 8 字节 ...

  2. Lua学习之加载其他lua文件

    Lua 中提供了模块的概念,模块类似一个封装库或者 C++ 中的一个类,可以将公用的部分提到一个文件中,以 API 的形式供其他 lua 文件调用. Lua 中的模块其实就是包含变量.函数等已知元素组 ...

  3. lambda函数式编程

    一.接口注解(@FunctionalInterface) @FunctionalInterface interface Interface1 { public void print(); } publ ...

  4. TCPlayer web切换播放问题

    遇到播放的视频无法切换的问题,,即便是清除标签重新生成也不行~~ 需要使用自带的API ~别无他法 demo: http://imgcache.qq.com/open/qcloud/video/tcp ...

  5. css 之过渡效果

    之前写css的效果,都是使用js 来完成的,但是写js比较耗费时间,有时候逻辑不对,还出不来效果,所以也比较烦:所以一些简单的效果,就使用css 来完成会比较好一些,不必耗费太多的精力: 但是写css ...

  6. Linux命令:内建命令

    本文对内建命令进行归类,便于学习和记忆. 分类 内建命令 同义词 功能相反命令 定义&声明类 alias   unalias declare typeset   local     reado ...

  7. Shopt命令(删除排除)

    有时候我们需要反选某个文件以外的其他文件,就会用到rm -rf!(file)命令,但是有时候这条命令会报错显示 -bash: !: event not found 解决办法:shopt -s extg ...

  8. 【18/12/31】hashcat源码粗读 --- sha256部分

    还没有详细研究过sha256算法的详细原理,主要是移植cf10算法时,hashcat在cf10_parse_hash时并不是直接调用sha256_update和sha256_final, 而是为了pr ...

  9. RabbitMQ的安装与配置

    一.安装环境 CentOS6.3 64位操作系统. 二.安装文件 1.安装erlang:Rabbitmq是基于erlang语言开发的,所以先需要安装erlang:我选择的安装包是:erlang-17. ...

  10. web应用程序+HTTP协议

    标签(空格分隔): Django web应用程序案例: 如果我们想通过自己电脑访问京东,就是一个网络编程(因为京东的服务部署在京东,通过自己的电脑浏览器传输到京东服务就是网络编程):只要涉及到网络编程 ...