原先以为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使用例子,如何序列化、反序列化到XML和JSON格式。
XStream Java Android下的使用.有读写相关的测试.
XStream开发时使用的包,官网原句:XStream is a simple library to serialize objects to XML and back again. 要使对象转化成xml,使用: XStream xstream = new XStream(); String str = xtream.toXML(Object); ...
赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
该文件是XStream官方使用文档,有效帮助程序员解决xml技术问题
赠送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 ...
xstream xml java对象转换,直接导入使用即可看到效果
Xstream上次对CVE-2020-26217处理并不彻底,虽然通过黑名单方法阻止了远程代码执行,但是仍然可以采用类似思路实现文件删除与服务器请求伪造。 影响版本 Xstream 修复版本 Xstream > = 1.4.15 风险等级 严重
xstream最新版jar包
使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...
XStream使用文档
xstream教程资料.rar
但是当对象和字段名与XML中的元素名不同时,XStream支持指定别名。XStream支持以方法调用的方式,或是Java 标注的方式指定别名。 XStream在进行数据类型转换时,使用系统缺省的类型转换器。同时,也支持用户自定义...
XStream是以个实现序列化数据和xml之间相互转换的类库,使用非常简单、方便
xStream xml to bean,使用xStream 互转 xml 、bean. 的一个工具类。
xstream-1.4.19.jar
xstream-1.4.20.jar
xstream中xml与javaBean的互转