最近跟第三方对接,对方需要的数据为XML格式的,索性就把以前拼接字符串的做法给抛弃了,改用JavaBean直接转XML的方式来做,所以本次研究了Xstream框架来将JaveBean转成XML
1.创建基本对象,用于指定生成XML的格式,如下图
@XStreamAlias(“sitemap”)注解用于指定该对象生成的XML节点名称,比如指定类Sitemap生成的节点名称就如



JAVA对象转XML-使用xtream框架心得
当类中包含List属性时,又不想生成这个节点,则可使用注解
@XStreamImplicit,该注解作用为忽略这个list,不生成该节点,只生成list所包含对象的所有属性所对应的节点,如下图
JAVA对象转XML-使用xtream框架心得
当类中属性不用指定别名时,会根据类中属性名称生成对应的节点,如:
JAVA对象转XML-使用xtream框架心得

2.如果对象里的值为null,则生成的XML结构里则没有该节点,为了将所有属性都能生成对应的节点,需要改写转换器并使用该转换器讲对象转换XML,所以自定义转换器必须要继承Converter接口,该接口中有三个方法:
(1):marshal:
序列化,将JAVA对象转换成XML
(2):canConvert:
判断需要序列化的对象是否使用此转换器

(3):unmarshal:
序列化,将XML对象转换成JAVA
因为目前只用将对象转换成xml,故重写方法1.如下图,重写marshal方法,用反射将所有属性都生成节点,当属性值为空时,给个默认值null。
JAVA对象转XML-使用xtream框架心得

JAVA对象转XML-使用xtream框架心得

如果只对指定类使用该转换器方法,需要重写canConvert方法,并进行相应判断,为true时则执行上图方法
JAVA对象转XML-使用xtream框架心得

如需要指定类使用该转换器,需要类上注明,如下图
JAVA对象转XML-使用xtream框架心得

4.Xstream是一种生成XML结构体的框架,意思就是生成不带头部文件的XML,这是一个问题,目前没有好的解决方式,因项目较赶,故采取拼接的方式加上头部文件,如下图即可将对象实例在指定位置生成对应的XML文件
JAVA对象转XML-使用xtream框架心得

初次写技术文章,如有不足之处,欢迎指出,感谢!

相关文章:

  • 2022-01-24
  • 2022-12-23
  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-05
  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
  • 2021-08-21
  • 2022-12-23
相关资源
相似解决方案