官网:http://xstream.codehaus.org/
官网上有很详细且简单易学的教程和实例。
作者:Headsen
日期:2013-11-2
简单高效的XML和JavaBean转换工具。最核心的两个方法。
XStream xStream = new XStream(); String xmlStr = xStream.toXml(obj); Object obj = xStream.fromXml(obj);
1、对于一个类的空对象(所有属性不赋值),返回一个根节点的报文。属性为Null的属性不会生成节点。属性非null的空值(如空字符串、空数组)会生成空白节点。
2、如果不设置类的别名,报文的根节点为【包名+类名】,显的臃肿,如:“xxx.package.ClassName”。
3、所有的注解,都有对应的java方法。注解的好处就是简单,但是耦合。两种方式各有各的好处。使用注解时,要调用下面方法激活。
xStream.processAnnotations(Person.class);
4、如果要处理的对象,多个属性引用统一对象,那么生成的XML很多节点数据会相同。XStream默认使用reference来精简XML的大小。如:
List order = new ArrayList(); order.add(bj); order.add(bj); order.add(order); 结果: <list> <CD> <id>Next Road Cross</id> </CD> <CD reference="../CD"/> <list reference=".."/> </list>
可以通过setModel设置引用模式。但是,在上述例子中,由于Order引用自己,不过不设置引用解析,则会抛出循环依赖错误。
5、对于没有父(根)节点的XML报文,可以使用隐式集合。如:
xStream.addImplicitCollection(Person.class, "friends");
6、默认情况下,XStream会生成干净的XML。有时候为了生成配置文件,或可读性更好的XML,需要使用节点属性。
xStream.useAttributeFor(Person.class, "firstname"); <person firstname="Headsen"></person>
7、一些结构对象,想作为节点转换时,需要实现对应的Convertor。如:
/* * 联系方式类的转换器 */ public class PhoneNumberConvertor implements SingleValueConverter { public boolean canConvert(Class type) { return type.equals(PhoneNumber.class); } public Object fromString(String number) { return new PhoneNumber(0, number); } public String toString(Object phone) { return ((PhoneNumber) phone).getCode() + "-" + ((PhoneNumber) phone).getNumber(); } } xstream.registerConverter(new PhoneNumberConvertor()); 结果: <person lastname="Zhang" fax="111-412-4444"> </person>
8、有时候,不想某些属性生成在XML中,可使用以下方法:
xStream.omitField(Person.class, "firstname");
9、XStream还支持转换为JSON格式,只需注入合适的解析驱动即可。但是XStream并不建议这样做。JSON格式有很大的局限性,特别是表示一些稍微复杂的数据类型。
XStream xstream = new XStream(new JettisonMappedXmlDriver());
XStream很简单,简单的记一下。代码都没贴上来。这里有个不错的。
http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html
相关推荐
Xstream使用说明 各种使用案例
XStream使用例子,如何序列化、反序列化到XML和JSON格式。
该文件是XStream官方使用文档,有效帮助程序员解决xml技术问题
XStream使用文档
XStream Java Android下的使用.有读写相关的测试.
XStream使用文档.docx
xstream xml java对象转换,直接导入使用即可看到效果
使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...
最齐全的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 is a simple library to serialize objects to XML and back again. 要使对象转化成xml,使用: XStream xstream = new XStream(); String str = xtream.toXML(Object); ...
XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...
xstream最新版jar包
xStream xml to bean,使用xStream 互转 xml 、bean. 的一个工具类。
赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...
XStream使用方法总结L-对象-转换.txt
XStream是以个实现序列化数据和xml之间相互转换的类库,使用非常简单、方便
XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...
xstream-1.4.19.jar
多个类注解@XStreamAlias,value相同、且在集合上使用了@XStreamImplicit会出现异常: com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的类路径)' ---- ...
xstream jar包,java对象转xml以及xml转java对象,操作很简单。