使用XStream进行XML与对象的互相转换 下划线问题
来源:互联网 发布:c语言教程 it教程网 编辑:程序博客网 时间:2024/05/17 21:28
近来遇到的编程过程中需要对XML进行大量的处理,java是面向对象的,所以要把XML的处理转化为面向对象的处理.下面记录下我用XStream进行XML与对象的转换过程.
public class XmlUtils {
private static XStream xstream;
static {
xstream = new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("-_", "_")));
}
/**
* XML to object.
*
* @param inputXml
* XML string.
* @param types
* annotation classes.
* @return
* @throws Exception
*/
public static Object xml2Object(String inputXml, Class< >[] types) throws Exception {
if (null == inputXml || "".equals(inputXml)) {
return null;
}
xstream.processAnnotations(types);
return xstream.fromXML(inputXml);
}
/**
* object to XML.
*
* @param ro
* Object.
* @param types
* annotation classes.
* @return
* @throws Exception
*/
public static String object2Xml(Object ro, Class< >[] types) throws Exception {
if (null == ro) {
return null;
}
xstream.processAnnotations(types);
return xstream.toXML(ro);
}
}
对生成xml中__替换_的最新写法是:xstream = new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("-_", "_")));
网上很多用这种XStream xstream = new XStream(new XppDriver(new XmlFriendlyReplacer("-_", "_")));
帮助文档上明确写明
/**
* @since 1.2
* @deprecated As of 1.4, use {@link #DomDriver(String, NameCoder)} instead.
*/
说明1.4已经废弃了这种做法.
处理过程中都用了annotations来处理对象,下面是其中一个对象的例子
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("RESULT")
public class ResultObject {
@XStreamAlias("RTNCODE")
private String rtncode;
@XStreamAlias("MESSAGE")
private String message;
@XStreamAlias("CONTENT")
private Content content;
...省略了get, set方法
下面是使用XmlUtils 的测试例子
try {
Class< >[] types = new Class[] { ResultObject.class, Content.class};
resultXml = XmlUtils.object2Xml(ro, types);//其中ro是要转换的对象
System.out.println(resultXml);
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
//下面是转换xml成对象的测试代码
InputObject io = (InputObject) XmlUtils.xml2Object(str, new Class[] { InputObject.class });
其中str是xml格式字符串.
- 使用XStream进行XML与对象的互相转换 下划线问题
- 使用XStream注解实现Java对象与XML互相转换的代码示例
- 使用XStream注解实现Java对象与XML互相转换的代码示例
- XStream xml与java对象互相转换,自动识别java
- 使用XStream注解实现Java对象与XML互相转换的代码示例---转自:http://www.blogjava.net/bolo
- 使用XStream进行对象与xml
- xstream实现java对象和XML的互相转换
- 使用XStream java对象转换成XML遇到的问题
- 使用 XStream 实现 Java 对象与 XML 的相互转换
- XStream实现xml和java对象之间的互相转换(包括对属性,别名,下划线_的处理),同理JSON也可以
- 使用XStream进行POJO和xml之间的转换
- 使用XStream进行POJO和xml之间的转换
- 使用XStream进行POJO和xml之间的转换
- 利用xstream进行java对象和xml之间的互相转化
- xStream完美转换XML、JSON /XStream Xml与JavaBean对象的互转经典【转载】
- 使用XStream是实现XML与Java对象的转换(1)--简介及入门示例
- 使用XStream是实现XML与Java对象的转换(2)--别名
- android 中XML和对象转换利器Xstream的使用
- return
- jumpserver 安装
- 3.5Android控件架构与自定义控件详解之自定义View(三)
- kali安装搜狗输入法
- 百钱百鸡
- 使用XStream进行XML与对象的互相转换 下划线问题
- java web :Context initialization failed
- 这里有141个创业公司的死亡案例,看鸡汤不如听教训
- [POJ 1459]Power Network[最大流]
- 每日一bootstrap 下拉菜单
- Java之封装、继承、多态(重载、重写)
- Android消息机制Looper与VSync的传播
- next_permutation的源码认识。
- CCF 最优灌溉