首页 > 其他 > 详细

object、xml相互转换

时间:2021-09-07 00:52:21      阅读:17      评论:0      收藏:0      [点我收藏+]
obj转xml
package com.allianity.common.utils;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.XStreamException;
import com.thoughtworks.xstream.io.naming.NoNameCoder;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.thoughtworks.xstream.io.xml.Xpp3Driver;

import java.io.StringWriter;

/**
* @program: workweixin-dev
* @ClassName InsureQueryXmlUtil
* @description:
* @author: Marlo
* @create: 2021-05-27 09:45
* @Version 1.0
**/
public class ToXmlUtil {
public static String toXml(Object obj) {
if (obj == null)
return null;
XStream xstream;
xstream = new XStream(new DomDriver("UTF-8"));
xstream.autodetectAnnotations(true);
xstream.processAnnotations(obj.getClass());
StringWriter writer = new StringWriter();
xstream.toXML(obj, writer);
return "<?xml version=‘1.0‘ encoding=‘GBK‘?>\n" + writer.toString().replaceAll("__", "_");
}

public static String toNoNameXml(Object obj) {
if (obj == null)
return null;
XStream xstream;
xstream = new XStream(new Xpp3Driver(new NoNameCoder()));
xstream.autodetectAnnotations(true);
xstream.processAnnotations(obj.getClass());
StringWriter writer = new StringWriter();
xstream.toXML(obj, writer);
return "<?xml version=‘1.0‘ encoding=‘GBK‘?>\n" + writer.toString();
}

public static String toXmlUTF(Object obj) {
if (obj == null)
return null;
XStream xstream;
xstream = new XStream(new DomDriver("UTF-8"));
xstream.autodetectAnnotations(true);
xstream.processAnnotations(obj.getClass());
StringWriter writer = new StringWriter();
xstream.toXML(obj, writer);
return "<?xml version=‘1.0‘ encoding=‘UTF-8‘?>\n" + writer.toString();
}

/**
* @param <T>
* @param rawxml
* @param cls
* @returnn
*/
@SuppressWarnings("unchecked")
public static <T> T toBean(String rawxml, Class<T> cls) throws XStreamException {
if (rawxml == null || "".equals(rawxml))
return null;
XStream xstream;
xstream = new XStream(new DomDriver("UTF-8"));
XStream.setupDefaultSecurity(xstream);
xstream.allowTypes(new Class[]{cls});
xstream.autodetectAnnotations(true);
xstream.processAnnotations(cls);
xstream.ignoreUnknownElements();
T obj = (T) xstream.fromXML(rawxml);
return obj;
}
}

注:若xml参数名称出现路径问题,在类外层添加
@XStreamAlias("AgentInfo")注解即可

xml转obj
package com.gllic.workweixin.utils;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.XStreamException;
import com.thoughtworks.xstream.io.naming.NoNameCoder;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.thoughtworks.xstream.io.xml.Xpp3Driver;

import java.io.StringWriter;

/**
* @program: workweixin-dev
* @ClassName InsureQueryXmlUtil
* @description:
* @author: Marlo
* @create: 2021-05-27 09:45
* @Version 1.0
**/
public class InsureQueryXmlUtil {
public static String toXml(Object obj) {
if (obj == null)
return null;
XStream xstream;
xstream = new XStream(new DomDriver("UTF-8"));
xstream.autodetectAnnotations(true);
xstream.processAnnotations(obj.getClass());
StringWriter writer = new StringWriter();
xstream.toXML(obj, writer);
return "<?xml version=‘1.0‘ encoding=‘GBK‘?>\n" + writer.toString().replaceAll("__", "_");
}

public static String toNoNameXml(Object obj) {
if (obj == null)
return null;
XStream xstream;
xstream = new XStream(new Xpp3Driver(new NoNameCoder()));
xstream.autodetectAnnotations(true);
xstream.processAnnotations(obj.getClass());
StringWriter writer = new StringWriter();
xstream.toXML(obj, writer);
return "<?xml version=‘1.0‘ encoding=‘GBK‘?>\n" + writer.toString();
}

public static String toXmlUTF(Object obj) {
if (obj == null)
return null;
XStream xstream;
xstream = new XStream(new DomDriver("UTF-8"));
xstream.autodetectAnnotations(true);
xstream.processAnnotations(obj.getClass());
StringWriter writer = new StringWriter();
xstream.toXML(obj, writer);
return "<?xml version=‘1.0‘ encoding=‘UTF-8‘?>\n" + writer.toString();
}

/**
* @param <T>
* @param rawxml
* @param cls
* @returnn
*/
@SuppressWarnings("unchecked")
public static <T> T toBean(String rawxml, Class<T> cls) throws XStreamException {
if (rawxml == null || "".equals(rawxml))
return null;
XStream xstream;
xstream = new XStream(new DomDriver("UTF-8"));
XStream.setupDefaultSecurity(xstream);
xstream.allowTypes(new Class[]{cls});
xstream.autodetectAnnotations(true);
xstream.processAnnotations(cls);
xstream.ignoreUnknownElements();
T obj = (T) xstream.fromXML(rawxml);
return obj;
}
}


ContListTranData td = InsureQueryXmlUtil.toBean(respXML, ContListTranData.class);
 

object、xml相互转换

原文:https://www.cnblogs.com/Marlo/p/15232927.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!