`
csbison
  • 浏览: 150133 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

XStream中使用annotation处理attribute

XML 
阅读更多

原先以为XStream不支持attribute。最近发现v1.3以后是支持的,使用annotation来定义,而且因为一直在用XStream,就不改成jaxb2.1了。

 

看见网上介绍得不多,贴一下源码,以供参考。

javabean的attribute使用@XStreamAsAttribute来定义,

同时需要调用 XStream.processAnnotations(YourClass.class);

 

XML文件如下:

 

<?xml version="1.0" encoding="UTF-8"?>
	<!-- 接口定义-->
<interfaceDefine>
	<osUDPairCollectReq>
		<version>1.0.0</version>
		<providerSID>00600001</providerSID>
		<providerEID>0005</providerEID>
		<providerECID>0005.01</providerECID>
		<providerIFName>osUDPairCollect</providerIFName>
		<callingType>01</callingType>
	</osUDPairCollectReq>
	<!—测试使用attribute -->
	<deviceCaps>
		<services>
			<service name="BMS">
				<items>
					<item id="160" yes="YES" no="NO" />
				</items>
			</service>
		</services>
	</deviceCaps>
</interfaceDefine>

 JavaBean如下:

 

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;

@XStreamAlias("interfaceDefine")
public class InterfaceDefine {
	/**
	 *测试的子类
	 */
	public static class OsRequestHeader {
		public String version, providerSID, providerEID, providerECID,
				providerIFName, callingType;
	}

	public static class DeviceCaps {
		public Service[] services;

		@XStreamAlias("service")
		public static class Service {
			@XStreamAsAttribute
			public String name;
			public Set<Item> items;
		}

		@XStreamAlias("item")
		public static class Item {
			@XStreamAsAttribute
			public Integer id;
			@XStreamAsAttribute
			public String yes = "YES";
			@XStreamAsAttribute
			public String no = "NO";
		}
	}

	/**
	 * 操作接口
	 */
	public OsRequestHeader osUDPairCollectReq;

	 

	public DeviceCaps deviceCaps;


        /*
        * 将对象转换成XML的实现
        */
	@Override
	public String toString() {
		XStream xs = new XStream();
		xs.processAnnotations(InterfaceDefine.class);
		return xs.toXML(this);
	}
}
分享到:
评论

相关推荐

    Xstream使用说明

    Xstream使用说明 各种使用案例

    XStream使用例子

    XStream使用例子,如何序列化、反序列化到XML和JSON格式。

    XStream Java下的使用

    XStream Java Android下的使用.有读写相关的测试.

    XStream开发使用的包

    XStream开发时使用的包,官网原句:XStream is a simple library to serialize objects to XML and back again. 要使对象转化成xml,使用: XStream xstream = new XStream(); String str = xtream.toXML(Object); ...

    xstream-1.4.11-API文档-中文版.zip

    赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    XStream使用文档

    该文件是XStream官方使用文档,有效帮助程序员解决xml技术问题

    xstream-1.4.7-API文档-中文版.zip

    赠送jar包:xstream-1.4.7.jar; 赠送原API文档:xstream-1.4.7-javadoc.jar; 赠送源代码:xstream-1.4.7-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    最齐全的xstream1.4.8.jar

    最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...

    xstream使用案例

    xstream xml java对象转换,直接导入使用即可看到效果

    xstream-1.4.15.jar

    Xstream上次对CVE-2020-26217处理并不彻底,虽然通过黑名单方法阻止了远程代码执行,但是仍然可以采用类似思路实现文件删除与服务器请求伪造。 影响版本 Xstream 修复版本 Xstream &gt; = 1.4.15 风险等级 严重

    xstream最新版 - xstream-1.4.18.jar

    xstream最新版jar包

    xStream使用demo

    使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...

    XStream使用文档 wd.docx

    XStream使用文档

    xstream教程资料.rar

    xstream教程资料.rar

    XStream XML与Json转换

    但是当对象和字段名与XML中的元素名不同时,XStream支持指定别名。XStream支持以方法调用的方式,或是Java 标注的方式指定别名。 XStream在进行数据类型转换时,使用系统缺省的类型转换器。同时,也支持用户自定义...

    使用XStream操作xml教程

    XStream是以个实现序列化数据和xml之间相互转换的类库,使用非常简单、方便

    xStream xml to bean

    xStream xml to bean,使用xStream 互转 xml 、bean. 的一个工具类。

    xstream-1.4.19.jar

    xstream-1.4.19.jar

    xstream-1.4.20.jar

    xstream-1.4.20.jar

    xstream序列化与反序列化

    xstream中xml与javaBean的互转

Global site tag (gtag.js) - Google Analytics